class Solution {
public:
bool isSubstringPresent(string s) {
}
};
100248. 字符串及其反转中是否存在同一子字符串
给你一个字符串 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
仅由小写英文字母组成。原站题解
java 解法, 执行用时: 2 ms, 内存消耗: 42 MB, 提交时间: 2024-03-18 10:54:53
class Solution { public boolean isSubstringPresent(String S) { char[] s = S.toCharArray(); boolean[][] vis = new boolean[26][26]; for (int i = 1; i < s.length; i++) { int x = s[i - 1] - 'a'; int y = s[i] - 'a'; vis[x][y] = true; if (vis[y][x]) { return true; } } return false; } }
golang 解法, 执行用时: 3 ms, 内存消耗: 2.2 MB, 提交时间: 2024-03-18 10:54:33
func isSubstringPresent(s string) bool { vis := [26][26]bool{} for i := 1; i < len(s); i++ { x, y := s[i-1]-'a', s[i]-'a' vis[x][y] = true if vis[y][x] { return true } } return false }
python3 解法, 执行用时: 34 ms, 内存消耗: 16.3 MB, 提交时间: 2024-03-18 10:54:14
class Solution: def isSubstringPresent(self, s: str) -> bool: st = set() for x, y in pairwise(s): st.add((x, y)) if (y, x) in st: return True return False
python3 解法, 执行用时: 46 ms, 内存消耗: 16.4 MB, 提交时间: 2024-03-18 10:52:33
class Solution: def isSubstringPresent(self, s: str) -> bool: n = len(s) m = defaultdict(bool) for i in range(0, n-1): m[s[i:i+2]] = True if m.get(s[i+1] + s[i]): return True return False