充分暴露了读题能力的薄弱…
字符不相等…字符串长度固定为 2,全是小写字符…
其实这个题目的思路和 lc 第一题,两数之和 的思路完全一致。哈希直接做即可,不需要考虑字符串长度、限制之类的东西。
class Solution {
public:
int maximumNumberOfStringPairs(vector<string>& words) {
int res = 0;
unordered_set<string> S;
for (auto &s : words) {
string t = s;
reverse(t.begin(), t.end());
if (S.count(t)) res ++ ;
S.insert(s);
}
return res;
}
};
// 初始版本,没考虑清楚
class Solution {
public:
int maximumNumberOfStringPairs(vector<string>& words) {
int res = 0;
unordered_map<string, int> um;
for (int i = 0; i < words.size(); i ++ ) {
string tmp = words[i];
reverse(tmp.begin(), tmp.end());
um[tmp] = i + 1;
}
for (int i = 0; i < words.size(); i ++ ) {
if (um[words[i]] > 0 && um[words[i]] - 1 != i)
res ++ ;
}
return res / 2;
}
};