牛客网练习记录【字符串】

字符串""software""的子串总数为C(9,2)+1=37个,非空子串公式为n*(n+1)/2,对于串S=′aaab′,Next数组值未知。" 127709194,14101728,Spring Boot集成Flowable实战,"['Spring Boot', 'Flowable', '集成', '数据库配置', '流程引擎']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1, 若串S=′software′,其子串的数目是() 1/1
A 8
B 37
C 36

D 9

【答案】B 

【解析】 字符串的子串,就是字符串中的某一个连续片段。截取一个字符串长度需要一个起始位置和结束位置。字符串“software”有8个字符,可是设置间隔的位置有9个,使用C(9,2)=36即可求得字符串“software”的所有子串。因为题目标明空串也是子串,故还需要加上1,总共37个子串。所以答案选B。 
含有n个不同字符的字符串的非空子串的个数为C(n + 1, 2) = n * (n + 1) / 2  
子串(包括空串)为 n * (n + 1) / 2 + 1  
非空真子子串(不包括空串和跟自己一样的子串)为 n *(n + 1)/ 2 - 1 

2,已知串S=′aaab′,其Next数组值为()

1/1
A 0123
B 1123
C 1231
D 1211
选择A选项。

模式串 a a a b
NEXT数值 0 1 2 3
next数组的求解方法是:第一位的next值为0,第二位的next值为1,后面求解每一位的next值时,根据前一位进行比较。首先将前一位与其next值对应的内容进行比较,如果相等,则该位的next值就是前一位的next值加上1;如果不等,向前继续寻找next值对应的内容来与前一位进行比较,直到找到某个位上内容的next值对应的内容与前一位相等为止,则这个位对应的值加上1即为需求的next值;如果找到第一位都没有找到与前一位相等的内容,那么需求的位上的next值即为1。
对于本题,求next值的过程:
前两位:next数组值前两位一定为01,即aaab中的前两位aa对应01,如上表中next第1,2位为0和1.其实这就可以选出答案了.
第三位:3a前面是2a(2a表示序号为2的a),2a的next数组值为1,将2a和1a相比,两者相同,都是a,则3a的next值为2a的next值加1,即2;
第四位:4b前3a的next为2,3a与2a相比,二者相同,则其next值为2a的next加1,为3.
结果为0123,选A
如果比较的时候碰到与前一位字符“不同”怎么办?那就以前一位的next值为序号,找到这个序号对应的字符,再进行比较,如果与之相同,就用这一位的next值+1,如果不同就继续重复这个操作直到找到相同的字符为止。如果一直重复到第一位还找不到,则将所求位的next值置为1。
3,字符串′ababaabab′的nextval为()1/1
   
   
A (0,1,0,1,0,4,1,0,1)
B (0,1,0,1,0,2,1,0,1)
C (0,1,0,1,0,0,0,1,1)
D (0,1,0,1,0,1,0,1,1)
答案:A
解析:
 i   &
关于牛客网 Round 85 的比赛题目及解析,目前并未在提供的引用中找到具体的相关信息。然而,可以基于已有的引用内容推测该类比赛通常涉及的内容形式以及可能的解题思路。 ### 牛客网 SQL 题目常见考点 根据已有引用中的描述,牛客网上的 SQL 笔试题主要集中在以下几个方面: 1. **复杂查询逻辑** 如统计特定条件下的数据量、计算比率等操作[^3]。 2. **多表联结与子查询** 使用 `JOIN` 将多个表格关联起来,并通过 `WHERE` 或其他过滤条件筛选目标记录[^4]。 3. **窗口函数的应用** 开窗函数用于解决排名、累计求和等问题,在实际业务场景中有广泛应用价值[^1]。 4. **字符串处理与日期运算** 对字符型字段进行分割提取或者针对时间戳执行加减天数之类的变换也是常考知识点之一[^2]。 虽然无法提供具体的Round 85赛题详情,但可以根据上述提到的技术要点准备相应练习材料来提升自己应对这类竞赛的能力水平。 以下是几个建议方向供参考学习: #### 示例代码片段展示如何实现某些典型功能 ##### 计算点击率(CTR) ```sql SELECT SUM(read_num)/SUM(show_num) AS fans_ctr FROM c LEFT JOIN b ON c.content_id = b.content_id WHERE (author_id,fans_id) IN ( SELECT author_id,fans_id FROM a ); ``` 此段脚本展示了怎样利用聚合函数配合外键关系构建出最终所需的指标数值。 --- ##### 统计考试完成情况 ```sql SELECT COUNT(uid)AS total_pv, SUM(IF(score IS NULL ,0,1)) AS complete_pv, COUNT(DISTINCT IF(score IS NOT NULL,exam_id,NULL)) AS complete_exam_cnt FROM exam_record; ``` 这段语句体现了基础的数据汇总技巧,特别是当存在缺失值时该如何合理地加以考虑。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值