3182-2020-3-3-java
找首位相同的最短字串
看作是找收尾相同的最短子串
这怕不是一个二维dp吧
设dp[i][j]表示以i字符开始,j字符结束的最长子串长度
最直接的,对于字符串中的每一个字符向后遍历一次,遇到的第一个相同的就是最短的
但我总感觉应该用动态规划来做
import java.io.*;
import java.util.StringTokenizer;
class Main {
public static void main(String[] args) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer tokenizer = new StringTokenizer(reader.readLine());
String str = tokenizer.nextToken();
char[] chars = str.toCharArray();
int startIndex=-1,length=chars.length+1;
for(int i = 0;i<chars.length-1;i++){
for(int j =i+1;j< chars.length;j++){
if(chars[i]==chars[j]&&j-i<length){
startIndex=i;
length=j-i;
break;
}
}
}
if(startIndex>=0) for(int i=startIndex;i<=startIndex+length;i++) System.out.print(chars[i]);
}
}