Java戦闘10:異なる部分文字列

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

おすすめ

転載: blog.csdn.net/weixin_46020391/article/details/112426859