Advertisement

蓝桥杯中寻找不同子串

阅读量:

题目描述

本题为填空题,仅需计算出最终结果,并在代码中通过输出语句将所得结果进行展示。

所谓非空子串,指的是由字符串中长度不少于 1 的连续字符构成的字符串。例如,对于字符串 aaab 来说,其非空子串包括 a、b、aa、ab、aaa、aab、aaab 等,共计 7 个。

需要注意的是,在统计过程中,仅需考虑本质不同的子串数量。

那么,请问字符串 0100110001010001 中包含多少个不同的非空子串?

分析:

此类求解子串的问题属于滑动窗口方法的典型应用场景。我们可以通过使用 Set 数据结构对所有生成的子串进行去重处理,将字符串中的每一个可能的子串都添加至 Set 中即可完成统计。

若对滑动窗口方法不够熟悉,可参考:滑动窗口算法基本原理和实践

Java:

复制代码
 import java.util.*;

    
 // 1:无需package
    
 // 2: 类名必须Main, 不可修改
    
  
    
 public class Main {
    
     public static void main(String[] args) {
    
     Set<String> 

全部评论 (0)

还没有任何评论哟~