import java.util.ArrayList;
import java.util.Scanner;
public class Main {
/**
*字串分支
* 输入:dwere 答案:29 我的:29
*
*
*
*/
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String input=scan.next();
char []arr=input.toCharArray();
// //检验 记录每次的last next
// ArrayList<String> list = new ArrayList<>();
// char []arr=new char[]{'a','b','c','d','a','b','c','d'};
long last=0;
long next=1;
long sum=0;
char c=' ';
for (int i = 0; i < arr.length; i++) {//第i个字符的贡献值
c=arr[i];
//寻找上一个
if (i==0){
last=-1;
}
else{
for (int j = i-1; j >=0 ; j--) {
if (c==arr[j]){
last=j;
break;//找到上一个c 并退出本循环
}
else{
last=-1;
}
}
}
//没有下一个 下标为arr.length
if (i==arr.length-1){
next=arr.length;
}
else{
for (int j =i+1; j <arr.length; j++) {
if (c==arr[j]){
next=j;
break;
}
else{
next=arr.length;
}
}
}
// // last i next
// list.add(String.valueOf(arr[i]));
// list.add(String.valueOf(last));
// list.add(String.valueOf(next));
sum+=(i-last)*(next-i);
}
// System.out.println(list);
System.out.println(sum);
scan.close();
}
}
【蓝桥杯】子串分值 (Java)
最新推荐文章于 2023-01-25 13:47:19 发布