zoukankan      html  css  js  c++  java
  • 求解字符串所包含子串的个数

    1、子串:串中任意个连续的字符组成的子序列称为该串的子串(连续、连续、连续!重要的事情说三遍)

    • 备注:空串属于子串

    2、串中字符均不相同:n个字符构成的字符串,假设每个字符都不一样,问有多少个子串

    • 答案:n(n+1)/2+1
    • 友情提示:每个字符均不相同
    • 解析:
    • 包含1个字符的子串共n个
    • 包含2个字符的子串共n-1个
    • 包含3个字符的子串共n-2个
    • 包含4个字符的子串共n-3个
    • .。。。。。
    • 包含n个字符的子串共1个
    • 空串1个
    • 综上所述:子串个数共:1+2+3+。。。+n+1(空串)=n(n+1)/2+1
    • 实例应用:若串S=′software′,其子串的数目是()
      • 解析:n(n+1)/2+1=8(8+1)/2+1=37

    3、串中字符出现重复:字符串www.qq.com所有非空子串(两个子串如果内容相同则只算一个)个数是()

    • 答案:50
    • 备注:存在相同字符,所以计算方法为总个数减去重复个数,即n(n+1)/2+1-重复个数
    • 解析:包含重复子串共:n(n+1)/2+1=10(10+1)/2+1=55,减去重复:2个w,1个ww,1个q,1个.,所以共55-5=50个
  • 相关阅读:
    self 和 super 关键字
    NSString类
    函数和对象方法的区别
    求两个数是否互质及最大公约数
    TJU Problem 1644 Reverse Text
    TJU Problem 2520 Quicksum
    TJU Problem 2101 Bullseye
    TJU Problem 2548 Celebrity jeopardy
    poj 2586 Y2K Accounting Bug
    poj 2109 Power of Cryptography
  • 原文地址:https://www.cnblogs.com/SophieWang-cmu/p/13914779.html
Copyright © 2011-2022 走看看