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

题目:

 

 

解答:

思路:哈希。

需要满足两个条件:

  • 两个字符串长度相同;
  • 两个字符串中包含的相同字符,数量相同;
 1 class Solution {
 2 public:
 3     bool CheckPermutation(string s1, string s2) 
 4     {
 5         if (s1.size() != s2.size()) 
 6         {
 7             return false;
 8         }
 9         vector<int> hash(256, 0);
10         for (int i = 0; i < s1.size(); ++i) 
11         {
12             ++hash[s1[i]];
13             --hash[s2[i]];
14         }
15         for (int i = 0; i < hash.size(); ++i) 
16         {
17             if (hash[i] != 0) 
18             {
19                 return false;
20             }
21         }
22         return true;
23 
24     }
25 };

 

posted @ 2020-05-03 23:25  梦醒潇湘  阅读(215)  评论(0)    收藏  举报