森林举行运动会,小伙伴们身上每个都印着一个字符标记,排成一列,委员会要挑出每列里相邻小伙伴身上没有重复字符标记的,最多能挑出几个?
比如:小伙伴们的字符标记串起来是“ccccccbc” 那相邻的小伙伴身上没有重复的字符标记是cb或者bc,那这个人数就是2。
import java.util.*;
public class Main {
/**
* 请完成下面这个函数,实现题目要求的功能 **/
/** 当然,你也可以不按照这个模板来作答,完全按照自己的想法来 ^-^ **/
static int lengthOfLongestSubstring(String s) {
String[] s1=new String[s.length()-1];
int i=0,j,length=0;
boolean repeat=false;
boolean[] b=new boolean[s.length()-1];
char[] cs=s.toCharArray();
//可以用s1[0]=""+cs[0]+cs[1];代替,下同
s1[0]=String.valueOf(cs[0])+String.valueOf(cs[1]);
b[0]=true;
for(j=1;j<cs.length-1;j++){
repeat=false;
for(int k=0;k<=i;k++){
if((String.valueOf(cs[j])+String.valueOf(cs[j+1])).equals(s1[k])){
repeat=true;
b[k]=false;
break;
}
}
if(!repeat){
s1[++i]=String.valueOf(cs[j])+String.valueOf(cs[j+1]);
b[i]=true;
}
}
for(i=0;s1[i]!=null;i++){
if(b[i]){
length++;
}
}
return length;
}
public static void main(String[] args){
Scanner in = new Scanner(System.in);
int res;
String _s;
try {
_s = in.nextLine();
} catch (Exception e) {
_s = null;
}
res = lengthOfLongestSubstring(_s);
System.out.println(String.valueOf(res));
}
}