在一个由小写英文字母(a-z)组成的字符串中,查找最短子串,其头尾字母相同。输出最左边的该类子串。
思路:将字符串转为字符数组,方便处理。遍历字符数组,找到每个字母到后一个相同字母的距离,最小值为答案。
package test;
import java.util.Scanner;
public class test{
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String inS=sc.next();
char[] in=inS.toCharArray(); //转为字符数组方便处理
int l=in.length,ans=0,tmp=200;
for(int i=0;i<l-1;i++) { //遍历字符数组
for(int j=i+1;j<l;j++) {
if(in[i]==in[j] && j-i<tmp) { //字母相同并且距离小于当前值
tmp=j-i; //tmp为答案字符串长度-1
ans=i;
}
}
}
for(int i=0;i<=tmp;i++) {
System.out.print(in[ans+i]);
}
}
}