

C++
class Solution {
public:
bool buddyStrings(string s, string goal) {
if (s.size() != goal.size()) {
return false;
}
if (s == goal) {
vector<int> count(26);
for (int i = 0; i < s.size(); i++) {
count[s[i] - 'a']++;
if (count[s[i] - 'a'] > 1) {
return true;
}
}
return false;
} else {
int first = -1, second = -1;
for (int i = 0; i < s.size(); i++) {
if (s[i] != goal[i]) {
if (first == -1)
first = i;
else if (second == -1)
second = i;
else
return false;
}
}
return (second != -1 && s[first] == goal[second] && s[second] == goal[first]);
}
}
};
本文探讨了一种C++实现的解决方案,用于判断两个字符串是否为'友伴字符串',即在不完全相等的情况下,它们的部分字符互换后可以匹配。算法详细解析了字符串比较和特殊条件的处理过程。

被折叠的 条评论
为什么被折叠?



