题目如下
思路
首先定义函数,找到一个字符串中只出现一次的字符个数,之后将字符串从头到尾截取子串(注意,题目中可以重复,按照提示我们采取substring方法)
package LanQiaoBei_Question;
import java.util.Scanner;
//分俩步骤
//第一步,划分子串(不同字串)
//第二步,找出其中只出现一次的字符
public class ZichuanFEnzhi {
//找出只出现一次的字符个数
public static int findOneChar(String s) {
int max = 0;
int re = 0;
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
String s1 = Character.toString(c);
//循环,如果第一次出现该字符不是这个下标,就是重复
if (s.indexOf(s1) == i) {
//max是一共有多少个字符
max++;
} else {
//re是重复了多少个字符
re++;
}
}
//二者差值,就是只出现一次的字符的个数
return max - re;
}
public static void main(String[] args) {
//输入
Scanner sc = new Scanner(System.in);
String line = sc.nextLine();
//遍历找子串
int ans = 0;
for (int i = 0; i < line.length(); i++) {
for (int j = i + 1; j <= line.length(); j++) {
String substring = line.substring(i, j);
int oneChar = findOneChar(substring);
ans += oneChar;
}
}
System.out.println(ans);
}
}