0
点赞
收藏
分享

微信扫一扫

19年蓝桥别Java B组省赛第二题:不同的子串

目录

🍋题目描述

一个字符串的非空子串是指字符串中长度至少为1 的连续的一段字符组成
的串。例如,字符串aaab 有非空子串a, b, aa, ab, aaa, aab, aaab,一共7 个。
注意在计算时,只算本质不同的串的个数。
请问,字符串0100110001010001 有多少个不同的非空子串?

这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。

🍋思路

数字填空题。
就是暴力。
两个for循环直接暴力。相当于双指针问题。
要用到HashSet,因为它自带有查重功能。

  • 答案:100
    在这里插入图片描述

🍋源代码

import java.util.HashSet;

public class Main  {            
	public static void main(String[] args)  {  
		String s="0100110001010001";
		HashSet<String> set=new HashSet<>();
		//暴力遍历
		for(int i=0;i<s.length();i++) {
			for(int j=i+1;j<=s.length();j++) {//注意j的最大值。边界问题,总是要注意。
				set.add(s.substring(i, j));//左必右开。是下标的定义
			}
		}
		System.out.println(set.size());//输出set有多少种字符。即答案。HashSet自带排重功能。
		
		for(String a : set) {//用for方法遍历输出set的字符串
			System.out.println(a);
		}
    }  
}  

🍋其他真题

链接: 最全的2021蓝桥杯算法课《算法很美》的学习笔记总目录+真题详解.

举报

相关推荐

0 条评论