Leetcode-面试题 01.02. 判定是否互为字符重排

面试题 01.02. 判定是否互为字符重排

给定两个字符串 s1s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。

解题报告:

用一个整数数组映射26个字母,数组初始化为零,遍历字符串1,出现字母则计数加1,遍历字符串2,出现字母则计数减1,在遍历整数数组,判断数组的值是否为零。

class Solution {
public:
    bool CheckPermutation(string s1, string s2) {
        int cmp[26]={0};
        for (int i=0;i<s1.size();i++)
            cmp[s1[i]-'a']++;
        for (int i=0;i<s2.size();i++)
            cmp[s2[i]-'a']--;
        for (int i=0;i<26;i++)
            if (cmp[i]!=0) return false;
        return true;
    }
};
posted @ 2021-08-13 19:11  dinghao1262  阅读(27)  评论(0编辑  收藏  举报