2020蓝桥杯省赛---java---B---9(子串分值和)
生活随笔
收集整理的這篇文章主要介紹了
2020蓝桥杯省赛---java---B---9(子串分值和)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
題目描述
時(shí)間限制: 3.0s 內(nèi)存限制: 512.0MB 本題總分:25 分【問題描述】 對(duì)于一個(gè)字符串 S,我們定義 S 的分值 f(S) 為 S 中出現(xiàn)的不同的字符個(gè) 數(shù)。例如 f(”aba”) = 2,f(”abc”) = 3, f(”aaa”) = 1。 現(xiàn)在給定一個(gè)字符串 S[0…n?1](長度為 n),請(qǐng)你計(jì)算對(duì)于所有 S 的非空 子串 S[i…j](0≤i≤ j < n),f(S[i…j]) 的和是多少。【輸入格式】 輸入一行包含一個(gè)由小寫字母組成的字符串 S。【輸出格式】 輸出一個(gè)整數(shù)表示答案。【樣例輸入】 ababc【樣例輸出】 28【樣例說明】 子串 f值 a 1 ab 2 aba 2 abab 2 ababc 3 b 1 ba 2 bab 2 babc 3 a 1 ab 2 abc 3 b 1 bc 2 c 1【評(píng)測(cè)用例規(guī)模與約定】 對(duì)于 20% 的評(píng)測(cè)用例,1≤n≤10; 對(duì)于 40% 的評(píng)測(cè)用例,1≤n≤100; 對(duì)于 50% 的評(píng)測(cè)用例,1≤n≤1000; 對(duì)于 60% 的評(píng)測(cè)用例,1≤n≤10000; 對(duì)于所有評(píng)測(cè)用例,1≤n≤100000。思路分析
代碼實(shí)現(xiàn)
package TEST; import java.util.HashSet; import java.util.Scanner; import java.util.Set;class Main{public static void main(String[] args) {Scanner sc = new Scanner(System.in);String str = sc.nextLine();Set<Character> set = new HashSet<Character>();int sum=0;for (int i = 0; i < str.length(); i++) {for (int j = 0; j < str.length() - i; j++) {set.clear();for (int k = i; k <= i + j; k++) {set.add(str.charAt(k));}sum+=set.size();}}System.out.println(sum);} }總結(jié)
以上是生活随笔為你收集整理的2020蓝桥杯省赛---java---B---9(子串分值和)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: lol电脑配置推荐2021?
- 下一篇: 2020蓝桥杯省赛---java---B