题目描述
- 度度熊收到了一个只有小写字母的字符串S,他对S的子串产生了兴趣,S的子串为S中任意连续的一段。
- 他发现,一些子串只由一种字母构成,他想知道在S中一共有多少种这样的子串。
- 例如在串”aaabbaa”中,度度熊想找的子串有”a”,”aa”,”aaa”,”b”,”bb”五种。
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class FindSubString {
public static int findSub(char[] charArr){
Set<String> set = null;
if (charArr == null || charArr.length == 0){
return -1;
}else{
set = new HashSet<String>();
int i,j=0;
for (i=0;i<charArr.length && j<charArr.length;){
if (charArr[i] == charArr[j]){
set.add(String.copyValueOf(charArr, i, j - i + 1));
j++;
}else{
i=j;
}
}
}
System.out.println(set);
return set.size();
}
//测试
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
String inputString = scanner.nextLine();
char[] charArr = inputString.toCharArray();
System.out.println(findSub(charArr));
scanner.close();
}
}