给你一个字符串 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 仅由小写英文字母组成。
解题思路:
1.截取两个字符,反转字符串,判断原字符串中是否包含该字符即可
完整代码:/*** Solution类提供了一种检查字符串中是否包含特定长度子串的方法*/class Solution {/*** 检查给定字符串s中是否至少存在一个长度为2的子串,该子串在s中至少出现两次,且第二次出现时可以是反转的形式* * @param s 待检查的字符串* @return 如果存在这样的子串返回true,否则返回false*/public boolean isSubstringPresent(String s) {// 获取字符串长度,用于后续遍历int n = s.length();// 遍历字符串,寻找长度为2的子串for (int i = 0; i < n - 1; i++) {// 提取当前位置到下一个位置的子串String substring = s.substring(i, i + 2);// 使用StringBuilder来反转子串StringBuilder sb = new StringBuilder(substring);// 获取反转后的子串String reverse = sb.reverse().toString();// 检查原字符串中是否包含反转后的子串if (s.contains(reverse)) {// 如果包含,说明找到了符合条件的子串,返回truereturn true;}}// 如果遍历完字符串后没有找到符合条件的子串,返回falsereturn false;}}