第十届蓝桥杯软件类省赛 Java 大学 B 组 题目 第二题

B

在这里插入图片描述
按子串长度从(1~n)对原字符串进行截取,并判断该字符串是否出现过,没有就把答案加一。

做法是可以创建一个set集合,将所有子串加入进去,最后集合中字符串的数量就是答案。

代码:

import java.util.*;
import java.io.*;

public class Main{
    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        
        HashSet<String> res = new HashSet<String>();
        String s = in.nextLine();
        int n = s.length();
        for(int i = 0; i < n; i++){
            for(int j = i+1; j <= n; j++){
                res.add(s.substring(i, j));
            }
        }
        
        System.out.println(res.size());
    }
}

用到的知识

原文地址:https://www.cnblogs.com/de-ming/p/14050676.html