【算法】小红的ABC
小红的ABC (nowcoder.com)
【描述】
【分析】
解法:找规律
举一些长度2-5的回文串例子,可以发现在所有的回文串中,如果找最短的回文子串,只需要找长度为2或3的回文子串即可
所以仅需判断:长度为2和3的子串是否是回文串即可,如果没有返回-1
对于任意i位置,仅需判断i和i+1,i和i+1,i+2位置是否相等即可
【代码】
import java.util.*;
public class Main
{public static void main(String[] args){Scanner in = new Scanner(System.in);char[] s = in.next().toCharArray();int ret = -1;int n = s.length;for(int i = 0;i < n;i++){if(i + 1 < n && s[i] == s[i + 1]){ret = 2;break;}if(i + 2 < n && s[i] == s[i + 2]){ret = 3;//这里不要break,因为在代码向后走的过程中可能会发现ret=2的情况}}System.out.println(ret);}
}