题解 | #两个子串#

两个子串

http://www.nowcoder.com/practice/abf0f0d6b4c44676b44e66060286c45a

import java.util.*; public class Main{ public static void main(String[]args){ Scanner sc=new Scanner(System.in); String input=sc.nextLine(); String new_input=" "+input; char[]str=new_input.toCharArray(); int start=0; int n=input.length(); int[] next=new int[n+1]; // 构建next数组 for(int i=2,j=0;i<=n;i++){ while(j>0&&str[i]!=str[j+1]){ j=next[j]; } if(str[i]==str[j+1]){ j++; } next[i]=j; } StringBuilder sb=new StringBuilder(input); sb.append(input.substring(next[n])); System.out.println(sb.toString()); } }

全部评论

相关推荐

我也曾抱有希望:说的好直白
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务