简述:
用递归找一个字符串中 最长连续出现的字符的个数
例如:
“abbbbbbc"返回的就是6
package offer;
public class GetLongestConsecutiveSubString {
//递归实现找出字符串中连续出现次数最大的字符的长度
private int getLongestConsecutiveSubString(String str, int currentPos, int count, int maxLength){
if(currentPos == str.length()){
return maxLength;
}
if(str.charAt(currentPos) == str.charAt(currentPos - 1)){
count++;
if(count > maxLength)
maxLength = count;
}else{
count = 1;
}
return getLongestConsecutiveSubString(str, currentPos + 1, count, maxLength);
}
public int GetResult(String str){
if(str == null || str.isEmpty())
return 0;
if(str.length() == 1)
return 1;
return getLongestConsecutiveSubString(str, 1, 1, 1);
}
public static void main(String[] args) {
GetLongestConsecutiveSubString obj = new GetLongestConsecutiveSubString();
System.out.println(obj.GetResult("abbbbbbc"));
}
}