题目描述
80、找不同

两个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';
    }
}

排行还是蛮高的…
80、找不同

不过这个更具体思维性

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;
    }
}

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-01-16
  • 2022-12-23
  • 2022-01-02
  • 2021-05-29
猜你喜欢
  • 2021-03-27
  • 2021-09-19
  • 2022-01-12
  • 2021-08-26
  • 2022-12-23
  • 2021-09-28
相关资源
相似解决方案