0
点赞
收藏
分享

微信扫一扫

2022-04-08笔试面试代码题收集

you的日常 2022-04-13 阅读 36
数据结构

两个字符串,忽略顺序,是否相同,即是否包含相同的字符,对应字符的数量也相同
"hello"和"olleh"相同。
思路:位运算,0异或0=0,0异或1=1,所以ans初始化为0,任何数和自己异或结果为0,这样用0异或两个字符串的每个字符就可。O(n)

    bool match(string str1, string str2) {
        int n = str1.size();
        int n2 = str2.size();
        if (n != n2) return false;
        int ans = 0;
        for (int i = 0; i < n; ++i) {
            ans ^= str1[i];
            ans ^= str2[i];
        }
        return ans == 0;
    }

    int main(){
        string str1 = "hello";
        string str2 = "heoll";
        cout << match(str1, str2);
        return 0;
    }

持续补充

举报

相关推荐

0 条评论