题目描述
两个for循环结束
贴上代码,一开始想成了三个for循环,后来发现s和t不过相差一个单位长度,因此这里直接合并了,后面的return 'c’是为了编译器报错的,根本不会执行到那个地方:
class Solution {
public char findTheDifference(String s, String t) {
char[] s1 = s.toCharArray();
char[] s2 = t.toCharArray();
int[] tem = new int[123];
for (int i = 0; i < t.length(); i++) {
char j = s2[i];
if(i == t.length() -1){
}else {
tem[s1[i]]++;
}
tem[s2[i]]--;
}
for (int i = 0; i < s2.length; i++) {
char j = s2[i];
if(tem[j] == -1){
return j;
}
}
return 'c';
}
}
排行还是蛮高的…
不过这个更具体思维性
class Solution {
public char findTheDifference(String s, String t) {
char[] cs=s.toCharArray();
char[] ct=t.toCharArray();
char tmp=0;
for(char c:cs)
tmp^=c;
for(char c:ct)
tmp^=c;
return tmp;
}
}