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]);
}
}

本文作者:YaosGHC

本文链接:https://www.cnblogs.com/yaocy/p/16871366.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   YaosGHC  阅读(14)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起