问题描述和解决方案
package com.windit.model.algo;
import java.util.Scanner;
public class LongPlateau {
public static void main(String[] args) {
System.out.println("最长平台模型...");
Scanner in = new Scanner(System.in);
String str = in.nextLine();
findMaxStr(str);
System.out.println("Game over ...");
}
public static void findMaxStr(String str){
int len = str.length();
int count = 1;
char[] arr = str.toCharArray();
for(int i=1; i<len; i++){
if(arr[i] == arr[i-count]){
count++;
}
}
System.out.println("最大长度:"+ count);
int minChar = 0;
int index = 0;
for(int j=0;j<len;j++){
if(j+count > len){
break;
}
if((arr[j] == arr[j+count-1]) && (minChar < (int)arr[j])){
index =j ;
minChar = (int)arr[j];
}
}
System.out.println("起始位置: " + index +",字符:" + minChar);
String res = str.substring(index,index+count);
System.out.println("目标平台是:" + res);
}
}
最长平台问题--C语言名题百则
![在这里插入图片描述](https://img-blog.csdnimg.cn/20200415112729989.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM3MDQwMTcz,size_16,color_FFFFFF,t_70#pic_center)