第232场周赛 5701. 仅执行一次字符串交换能否使两个字符串相等
思路
- 单次遍历统计所有不同的字符个数
 
- 如果统计不同的字符个数为2,将两个字符位置交换后,字符串相等,则输出
true 
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
   | class Solution { public:     bool areAlmostEqual(string s1, string s2) {         if(s1==s2) return true;         int len=s1.size();         int cnt=0;         vector<int> vec;         for(int i=0;i<len;i++)         {             if(s1[i]!=s2[i])              {                 cnt++;                 vec.push_back(i);             }         }         if(cnt==2&&s2[vec[0]]==s1[vec[1]]&&s2[vec[1]]==s1[vec[0]]) return true;         return false;     } };
  |