题目:
给你一个字符串 s
,请你判断字符串 s
是否存在一个长度为 2
的子字符串,在其反转后的字符串中也出现。如果存在这样的子字符串,返回 true
;如果不存在,返回 false
。
示例 1:
输入:s = “leetcode”
输出:true
解释:子字符串 "ee"
的长度为 2
,它也出现在 reverse(s) == "edocteel"
中。
示例 2:
输入:s = “abcba”
输出:true
解释:所有长度为 2
的子字符串 "ab"
、"bc"
、"cb"
、"ba"
也都出现在 reverse(s) == "abcba"
中。
示例 3:
输入:s = “abcd”
输出:false
解释:字符串 s
中不存在满足「在其反转后的字符串中也出现」且长度为 2
的子字符串。
提示:
1 <= s.length <= 100
- 字符串
s
仅由小写英文字母组成
思路:
简单题,无需多盐
代码:
class Solution {
public:
string rever(string cur) {
string ans;
for (int i = cur.size() - 1; i >= 0; i--) {
ans += cur[i];
}
return ans;
}
bool isSubstringPresent(string s) {
unordered_map<string, int> hash;
for (int i = 0; i < s.size() - 1; i++) {
string cur = s.substr(i, 2);
if (cur[0] == cur[1]) return true;
string re = rever(cur);
if (hash[cur]) return true;
hash[re]++;
}
return false;
}
};