美文网首页
389. Find the Difference(重)

389. Find the Difference(重)

作者: 殷水臣 | 来源:发表于2017-02-21 16:02 被阅读0次

    这道题考察字符串操作,需要好好回顾,注意他人高效写法。我自己的效率并不高。

    我的解法

    初始版本

    看着爽跑得慢。

    class Solution {
    public:
        char findTheDifference(string s, string t) {
            while (t.length() != 1){
                for (int i = 0; i < s.length(); i ++)
                    t.erase(t.find(s[i]),1);
            }
            return t[0];
        }
    };
    

    改进版本

    还行但也不算快

    class Solution {
    public:
        char findTheDifference(string s, string t) {
            for (int i = 0; i < s.length(); i ++)
                t[t.find(s[i])] = '0';
            for (int i = 0; i < t.length(); i ++)
                if (t[i] != '0')
                    return t[i];
        }
    };
    

    他人解法

    位运算

    虽然老套但是我没想到真SB,效率和我一样,但是比我好看啊。。。

    class Solution {
    public:
        char findTheDifference(string s, string t) {
            char r=0;
            for(char c:s) r ^=c;
            for(char c:t) r ^=c;
            return r;
        }
    };
    

    没找到特别快的怎么写的,先放这好了= =

    相关文章

      网友评论

          本文标题:389. Find the Difference(重)

          本文链接:https://www.haomeiwen.com/subject/evjuwttx.html