首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
字符串 "www.qq.com" 所有非空子串(两个子串如果
[单选题]
字符串"
www.qq.com
"所有非空子串(两个子串如果内容相同则只算一个)个数是()
1024
1018
55
50
添加笔记
邀请回答
收藏(2171)
分享
37个回答
添加回答
63
推荐
eagle
D
总的子串个数为 10+9+8+7+。。+1 = 55
其中w(两次), ww, q, ., 有重复
55 - 5 = 50
编辑于 2015-02-04 10:37:00
回复(1)
158
bjty
非空子串的个数共有n(n+1)/2=55个,由于相同子串算一个,所以要减去2个w,一个.,一个ww,一个q,所以还有50个
发表于 2015-07-06 15:20:10
回复(0)
63
qqqqqq
要求的是子串,从左到右一次截取, 10个字符的子串,1个; 9个字符的子串,2个; 8----------------------3 7----------------------4 ......... 1----------------------10 共有:1+2+3+...+10=10*(10+1)/2=55 减去重复的: 1个字符时有3个w,2个q,2个. 2个字符时有2个ww 故应减去:(2+1+1+1)=5 答案:55-5=50
发表于 2015-08-31 00:22:39
回复(1)
38
不吃葡萄皮
注意两个概念:子串与子序列。
子串是从原字符串中连续截取得到的;而子序列则不要求连续,即可以是离散截取的。
如果求的是子序列,那么答案是B. 1018。具体计算是:
2^10 = 1024 个子序列,减去空串1个为1023,再减去子序列长度为1时重复的2个w和1个q为1020,最后再减去子序列长度为2时重复的2个ww,只剩下1018个不重复的子序列。
现在求的是子串,则只有 1 + 2 + 3 + ... + 10 = 55 个,减去重复的两次w,一次q,一次.,一次ww,只剩下 50 个不重复的。
选D。
发表于 2016-03-22 21:29:46
回复(7)
18
CodingEnding
正确答案D。
子串总数:
10+9+8+.....+1=55
以第一个
w
开头的子串:w,ww,www
以第二个
w
开头的子串:w,ww
以第三个
w
开头的子串:w
以第一个
q
开头的子串:q,qq
以第二个
q
开头的子串:q
以第一个
.
开头的子串:.
以第一个
.
开头的子串:.
重复子串数
:5
答案
:55-5=50
发表于 2017-03-06 15:56:00
回复(0)
8
追寻上飞
排除法,<55
发表于 2019-08-28 22:55:06
回复(0)
5
__sgf__
现在求的是子串,则只有 1 + 2 + 3 + ... + 10 = 55 个,减去重复的两次w,一次q,一次.,一次ww,只剩下 50 个不重复的。
发表于 2022-01-17 16:29:27
回复(1)
3
Sandbar
n代表字符串的长度,非空字串的种类数:n*(n+1)/2,这里的n=10,即10*(10+1)/2=55.题目中提到了非相同的个数。字符串中只要有相同的字符都将会存在相同字串。不是连续相同的字符,在字串字串中会有单个字符的字串的重复,即重复的为m(单个相同字符的个数)-1,在本题目中的.存在两个即m=2,存在重复的的为m-1=1。然而连续的相同字符则n*(n-1)/2.这里的www将存在相同的字串3*(3-1)/=3,qq则存在2*(2-1)/2=1,最终存在非空、非重复的子字符串的个为:55-1-3-1=50。可能存在相同的字符,一部分连续、一部分和连续的分开,例如##-ABC#D这种,在这里可以先计算连续的,然后再来把连续的当作一个字符,再计算分开的相同字符的个数即可。
发表于 2017-05-29 00:13:56
回复(0)
2
耀神
非空子串的个数公式 n(n+1)/2=55个,由于相同子串算一个,所以要减去2个w,一个.,一个ww,一个q,所以还有50个
编辑于 2019-10-09 23:34:51
回复(0)
2
牛客143068号
字符串www.qq.com所有非空子串(两个子串如果内容相同则只算一个)个数是50
非空子串的个数共有n(n+1)/2=55个,由于相同子串算一个,所以要减去2个w,一个.,一个ww,一个q,所以还有50个。
要求的是子串,从左到右一次截取, 10个字符的子串,1个; 9个字符的子串,2个; 8--------3个, 7---------4个, ......... 1-----------10个 共有:1+2+3+...+10=10*(10+1)/2=55 减去重复的: 1个字符时有3个w,2个q,2个. 2个字符时有2个ww 故应减去:(2+1+1+1)=5 答案:55-5=50。
发表于 2016-12-14 13:51:38
回复(0)
2
Jay瑜
选出的字符串是连续的
发表于 2015-09-01 10:44:35
回复(0)
1
真新镇小智要成为宝可梦大师
有谁点进去了出不来了
发表于 2022-09-02 15:50:55
回复(1)
1
牛客603443号
总的子串个数为 10+9+8+7+。。+1 = 55 其中w(两次), ww, q, ., 有重复 55 - 5 = 50
发表于 2016-03-09 09:28:28
回复(0)
1
嘎嘎嘎过把大人也让
类似于一根黄瓜可以切成多少段。规定这根黄瓜有11个下刀的地方,即11个字符间隙,那么总共有C(11,2)=11*10/2=55种下刀方法。减去重复的5种就是50种了。
发表于 2015-12-22 11:02:40
回复(0)
0
嘉嘉哇
非空字符串的数量n(n+1)/2 =11*10/2
发表于 2023-11-08 06:12:04
回复(1)
0
C++coder
字符串的字串包括空串和自身
发表于 2022-08-26 12:18:10
回复(0)
0
救赎i_
长度为1的子串总数:10,去除2个重复的w,1个重复的.,1个重复的q
长度为2的子串总数:9,去除1个重复的ww
长度为3的子串总数:8
长度为4的子串总数:7
...
长度为10的子串总数:1
所以
所有非空不重复子串
的个数为(10+9+..+1) - 2 - 1 - 1 = 10*11/2 -5 = 50
发表于 2022-08-11 21:17:13
回复(0)
0
陳丶奕丶迅
求子串个数的公式为n(n+1)/2,如果有重复字符,则需按情况做减法
发表于 2022-08-10 10:37:12
回复(0)
0
旁又
没注意到要连续
发表于 2022-04-12 15:41:55
回复(0)
0
爱码士er
开心的做完发现忘了减去重复!
发表于 2020-11-18 21:17:27
回复(0)
0
E.T.alien
一个字符串的非空子串的个数为n(n+1)/2 去掉重复子串 ①w ②w ③ww ④q ⑤. 所以答案55-5=50
发表于 2019-04-08 10:30:54
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
字符串
腾讯
上传者:
诺喏小怪
难度:
37条回答
2171收藏
15780浏览
热门推荐
相关试题
什么是竞争与冒险现象?怎样判断?如...
数字电路
评论
(1)
电子系统中常用的模拟电路及其功能
模拟电路
评论
(1)
下列哪些操作会使线程释放锁资源?
Java
评论
(1)
计算分类模型的性能指标
机器学习
评论
(0)
实现 k-Means 聚类算法
机器学习
评论
(1)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题