Java戦闘10:異なる部分文字列
第10回ブルーブリッジカップjavaBグループ2。
HashSetは重複を削除できるため、HashSetが使用されます。HashSetは使いやすく、覚えておくことができ、s.subString(int a、int b);も非常に使いやすく、文字列の分離に使用されます。文字列をc [a]からc [b-1]に区切ります。
元の質問:
[問題の説明]
文字列の空でない部分文字列とは、長さが1以上の文字の連続セグメントで構成される文字列を指します。たとえば、文字列aaabには、空でない部分文字列a、b、aa、ab、aaa、aab、aaab、合計7つの部分文字列があります。計算するときは、本質的に異なる文字列の数だけを数えることに注意してください。
すみません、文字列0100110001010001には、空でない部分文字列がいくつありますか?
【回答提出】
空欄に結果を記入する質問です。結果を計算して提出するだけです。この質問の結果は整数です。回答を送信するときにのみこの整数を入力してください。追加のコンテンツを入力すると、スコアを付けることができなくなります。
コードは次のように表示されます。
import java.util.HashSet;
public class blue_province2_way1 {
public static void main(String[] args) {
HashSet<String> sites=new HashSet<String>();
String s="0100110001010001";
for(int i=1;i<=s.length();i++) {
for(int j=0;j+i<=s.length();j++) {
String ss=s.substring(j,j+i);
sites.add(ss);
}
}
System.out.println(sites.size());
}
}
実行結果:100