算法题---找出给定的字母字符串中连续递增的最长子串

算法题目:给定任意一个非空的全是字母的字符串,找出其中按字典排序的,连续的子串。

情况举例:

  1. 相同字母也算,例如zdfffsse,最长就是dfffss
  2. dfsdfsmmxx,最长就是dfs,相同长度的子串,就取从左到右看,第一次出现的。

算法思路:用一个for循环从左到右遍历,用count记录有序子串的长度,用max记录最大长度。每次遍历完一个有序子串都和max比较,若大于max,则更新max(小于等于都不管)。更新max的时候用start记录该子串的起始位置,便于输出。


Java实现,其余语言同理

//String input = "abcbcdffgggf";
String input = "bmv";
int max = 0;
int count = 1;
int start = 0;
		
for(int i=1; i=0){ 
        count++;
    }else{
        if(maxcount?max:count;
//System.out.println(start+" " + max);
//输出
for(int i=start; i

你可能感兴趣的:(算法题)