题目:

给你一个字符串 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. 检查单词是否为句中其他单词的前缀相关推荐

  1. LeetCode简单题之检查单词是否为句中其他单词的前缀

    题目 给你一个字符串 sentence 作为句子并指定检索词为 searchWord ,其中句子由若干用 单个空格 分隔的单词组成. 请你检查检索词 searchWord 是否为句子 sentence ...

  2. LeetCode 1455. 检查单词是否为句中其他单词的前缀

    1. 题目 给你一个字符串 sentence 作为句子并指定检索词为 searchWord ,其中句子由若干用 单个空格 分隔的单词组成. 请你检查检索词 searchWord 是否为句子 sente ...

  3. 「 每日一练,快乐水题 」1455. 检查单词是否为句中其他单词的前缀

    文章目录

  4. C练题笔记之:Leetcode-804. 唯一摩尔斯密码词

    题目: 国际摩尔斯密码定义一种标准编码方式,将每个字母对应于一个由一系列点和短线组成的字符串, 比如: 'a' 对应 ".-" , 'b' 对应 "-..." ...

  5. C练题笔记之:Leetcode-12. 整数转罗马数字

    题目: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符          数值 I             1 V             5 X             1 ...

  6. C练题笔记之:Leetcode-307. 区域和检索 - 数组可修改

    题目: 给你一个数组 nums ,请你完成两类查询. 其中一类查询要求 更新 数组 nums 下标对应的值 另一类查询要求返回数组 nums 中索引 left 和索引 right 之间( 包含 )的n ...

  7. C练题笔记之:Leetcode-303. 区域和检索 - 数组不可变

    题目: 给定一个整数数组  nums,处理以下类型的多个查询: 计算索引 left 和 right (包含 left 和 right)之间的 nums 元素的 和 ,其中 left <= rig ...

  8. C练题笔记之:Leetcode-662. 二叉树最大宽度

    题目: 给你一棵二叉树的根节点 root ,返回树的 最大宽度 . 树的 最大宽度 是所有层中最大的 宽度 . 每一层的 宽度 被定义为该层最左和最右的非空节点(即,两个端点)之间的长度.将这个二叉树 ...

  9. C练题笔记之:Leetcode-793. 阶乘函数后 K 个零

    题目: f(x) 是 x! 末尾是 0 的数量.回想一下 x! = 1 * 2 * 3 * ... * x,且 0! = 1 . 例如, f(3) = 0 ,因为 3! = 6 的末尾没有 0 :而 ...

最新文章

  1. 系统集成项目管理工程师考试准备
  2. 数据结构图之二(最小生成树--克鲁斯卡尔算法)
  3. java如何调用系统保存框_java使用poi实现excel导出之后如何弹出保存提示框
  4. UVa 10603 Fill (BFS+优先队列)
  5. uniapp光标自动定义到文本框_word技巧自动生成毕业论文目录
  6. Blazor带我重玩前端(四)
  7. Need ffmpeg exe. You can download it by calling: imageio.plugins.ffmpeg.download()
  8. NDoc使用简要手册增加了例子代码
  9. Unity IOC简单认知
  10. node.js 数据库操作工具类封装
  11. windows bat脚本实现ftp自动下载 删除
  12. 沪深300指数的跟踪基金排名
  13. 中国银行基金代销一览表
  14. 多个路由器相连接的方式(以及配置成交换机的方式)
  15. 锈永不磨灭,让末日来得更酷!
  16. C++ 实现mystring类型
  17. CEPH J版本新特性RGW Multi-tenancy详解
  18. CRM下午茶(十)-从淘江湖说起
  19. LoadRunner各版本对IE版本支持
  20. 华为手机sd卡的根目录在哪_华为手机那么多系列,到底应该怎么选?哪一款更值得买?...

热门文章

  1. 周云的FLASH小游戏开发教室
  2. TPM设备管理,不只是维修保养
  3. Yii2默认界面增加多级菜单
  4. ros必备知识点3:rosbag话题的重命名与包的播放
  5. 2021年高处作业安装拆除维护证考试题库及高处安装、维护、拆除试题解析
  6. css —— 按钮水波纹扩散动画效果实现
  7. 休眠 鼎鼎机器人_COC部落冲突鼎鼎机器人
  8. 2022-2028年中国植物工厂行业发展动态及投资规划分析报告
  9. 网站上面无法显示woff、svg格式字体
  10. androidstudio简单页面设计