C练题笔记之:Leetcode-1455. 检查单词是否为句中其他单词的前缀
题目:
给你一个字符串 sentence 作为句子并指定检索词为 searchWord ,其中句子由若干用 单个空格 分隔的单词组成。请你检查检索词 searchWord 是否为句子 sentence 中任意单词的前缀。
如果 searchWord 是某一个单词的前缀,则返回句子 sentence 中该单词所对应的下标(下标从 1 开始)。如果 searchWord 是多个单词的前缀,则返回匹配的第一个单词的下标(最小下标)。如果 searchWord 不是任何单词的前缀,则返回 -1 。
字符串 s 的 前缀 是 s 的任何前导连续子字符串。
示例 1:
输入:sentence = "i love eating burger", searchWord = "burg"
输出:4
解释:"burg" 是 "burger" 的前缀,而 "burger" 是句子中第 4 个单词。
示例 2:
输入:sentence = "this problem is an easy problem", searchWord = "pro"
输出:2
解释:"pro" 是 "problem" 的前缀,而 "problem" 是句子中第 2 个也是第 6 个单词,但是应该返回最小下标 2 。
示例 3:
输入:sentence = "i am tired", searchWord = "you"
输出:-1
解释:"you" 不是句子中任何单词的前缀。
提示:
1 <= sentence.length <= 100
1 <= searchWord.length <= 10
sentence 由小写英文字母和空格组成。
searchWord 由小写英文字母组成。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/check-if-a-word-occurs-as-a-prefix-of-any-word-in-a-sentence
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
结果:
解题思路:
这题实际上就是循环判断。我没有去拆分sentence,直接通过循环挪动i,去判断第几组单词。
每一组单词开始判断的时候,先将isMatch改为true,默认是一致的。
在searchWord的长度内,每一个单子如果都一致自然推出,则不会改变isMatch状态。否则isMatch为false进行下一组单词的判断,
isMatch为true的时候推出所有比较,返回当前单词的组数就可以。
代码:
int isPrefixOfWord(char * sentence, char * searchWord){int sentenceLen = strlen(sentence);int searchWordLen = strlen(searchWord);bool isMatch;int count = 0;for (int i = 0; i + searchWordLen - 1 < sentenceLen; i++) {count++;isMatch = true;for (int j = 0; j < searchWordLen; j++) {if (sentence[i + j] != searchWord[j]) {isMatch = false;break;}}if(isMatch) {break;}for (; i < sentenceLen && sentence[i] != ' ' && sentence[i] != '\0'; i++);}if(!isMatch) {return -1;}return count;
}
C练题笔记之:Leetcode-1455. 检查单词是否为句中其他单词的前缀相关推荐
- LeetCode简单题之检查单词是否为句中其他单词的前缀
题目 给你一个字符串 sentence 作为句子并指定检索词为 searchWord ,其中句子由若干用 单个空格 分隔的单词组成. 请你检查检索词 searchWord 是否为句子 sentence ...
- LeetCode 1455. 检查单词是否为句中其他单词的前缀
1. 题目 给你一个字符串 sentence 作为句子并指定检索词为 searchWord ,其中句子由若干用 单个空格 分隔的单词组成. 请你检查检索词 searchWord 是否为句子 sente ...
- 「 每日一练,快乐水题 」1455. 检查单词是否为句中其他单词的前缀
文章目录
- C练题笔记之:Leetcode-804. 唯一摩尔斯密码词
题目: 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: 'a' 对应 ".-" , 'b' 对应 "-..." ...
- C练题笔记之:Leetcode-12. 整数转罗马数字
题目: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 1 ...
- C练题笔记之:Leetcode-307. 区域和检索 - 数组可修改
题目: 给你一个数组 nums ,请你完成两类查询. 其中一类查询要求 更新 数组 nums 下标对应的值 另一类查询要求返回数组 nums 中索引 left 和索引 right 之间( 包含 )的n ...
- C练题笔记之:Leetcode-303. 区域和检索 - 数组不可变
题目: 给定一个整数数组 nums,处理以下类型的多个查询: 计算索引 left 和 right (包含 left 和 right)之间的 nums 元素的 和 ,其中 left <= rig ...
- C练题笔记之:Leetcode-662. 二叉树最大宽度
题目: 给你一棵二叉树的根节点 root ,返回树的 最大宽度 . 树的 最大宽度 是所有层中最大的 宽度 . 每一层的 宽度 被定义为该层最左和最右的非空节点(即,两个端点)之间的长度.将这个二叉树 ...
- C练题笔记之:Leetcode-793. 阶乘函数后 K 个零
题目: f(x) 是 x! 末尾是 0 的数量.回想一下 x! = 1 * 2 * 3 * ... * x,且 0! = 1 . 例如, f(3) = 0 ,因为 3! = 6 的末尾没有 0 :而 ...
最新文章
- 系统集成项目管理工程师考试准备
- 数据结构图之二(最小生成树--克鲁斯卡尔算法)
- java如何调用系统保存框_java使用poi实现excel导出之后如何弹出保存提示框
- UVa 10603 Fill (BFS+优先队列)
- uniapp光标自动定义到文本框_word技巧自动生成毕业论文目录
- Blazor带我重玩前端(四)
- Need ffmpeg exe. You can download it by calling: imageio.plugins.ffmpeg.download()
- NDoc使用简要手册增加了例子代码
- Unity IOC简单认知
- node.js 数据库操作工具类封装
- windows bat脚本实现ftp自动下载 删除
- 沪深300指数的跟踪基金排名
- 中国银行基金代销一览表
- 多个路由器相连接的方式(以及配置成交换机的方式)
- 锈永不磨灭,让末日来得更酷!
- C++ 实现mystring类型
- CEPH J版本新特性RGW Multi-tenancy详解
- CRM下午茶(十)-从淘江湖说起
- LoadRunner各版本对IE版本支持
- 华为手机sd卡的根目录在哪_华为手机那么多系列,到底应该怎么选?哪一款更值得买?...