随笔-找出两个字符串中不相同的元素

版权声明:中华人民共和国持有版权 https://blog.csdn.net/Fly_Fly_Zhang/article/details/84997690

题目:

给定两个字符串 s 和 t,它们只包含小写字母。

字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。

请找出在 t 中被添加的字母。

示例:

输入:
s = “abcd”
t = “abcde”

输出:
e

解释:
‘e’ 是那个被添加的字母。

思路:好多人被是char类型束缚了,用的是两个字符串排序在进行比较的方法,其实char 也是由二进制组成的,在两个字符串当中,只有一个元素是一个,别的元素都是两两相同,我们可以用异或,两个相同的基本数据类型异或结果为0;这样两个字符串异或,最后剩下的就是那个被添加的元素了;

class Solution {
    public char findTheDifference(String s, String t) {
        if(s.length()==0&&t.length()!=0){  //判断是不是空串
            return t.charAt(0);
        }
        char ch=s.charAt(0);
        int i=1;
        int j=0;
        while(i<s.length()||j<t.length()){
            if(i<s.length()){
                ch^=s.charAt(i);
                i++;
            }
            if(j<t.length()){
                ch^=t.charAt(j);
                j++;
            }
        }
        return ch;
    }
}

猜你喜欢

转载自blog.csdn.net/Fly_Fly_Zhang/article/details/84997690