每日一题——LeetCode1455.检查单词是否为句中其他单词的前缀

方法一 js函数slice()

将字符串按空格符分割为单词数组,记searchWord的长度为n,分割每个单词的前n位看是否和searchWord匹配

javascript 复制代码
var isPrefixOfWord = function(sentence, searchWord) {
    let res = sentence.split(" ")
    for(i = 0 ; i < res.length ; i++) {
        if (res[i].slice(0,searchWord.length) === searchWord) {
            return i + 1
        }
    }
    return -1
}

消耗时间和内存情况:

方法二 双指针:

来自leetcode官方题解

链接:1455.检查单词是否为句中其他单词的前缀

使用 start 记录单词的起始,end记录单词结尾的下一个位置。我们遍历字符串 sentence并不断地分割单词,对于区间[start,end) 对应的单词,判断它是否存在某一前缀等于 searchWord,如果存在直接返回该单词对应的下标 index;如果遍历完所有单词都不符合条件,返回 −1。

javascript 复制代码
var isPrefixOfWord = function(sentence, searchWord) {
    let n = sentence.length, index = 1, start = 0, end = 0;
    while (start < n) {
        while (end < n && sentence[end] !== ' ') {
            end++;
        }
        if (isPrefix(sentence, start, end, searchWord)) {
            return index;
        }

        index++;
        end++;
        start = end;
    }
    return -1;
}

const isPrefix = (sentence, start, end, searchWord) => {
    for (let i = 0; i < searchWord.length; i++) {
        if (start + i >= end || sentence[start + i] !== searchWord[i]) {
            return false;
        }
    }
    return true;
};

消耗时间和内存情况:

相关推荐
初级炼丹师(爱说实话版)10 分钟前
多进程与多线程的优缺点及适用场景总结
算法
hetao173383722 分钟前
2025-11-25~26 hetao1733837的刷题记录
c++·算法
历程里程碑39 分钟前
各种排序法大全
c语言·数据结构·笔记·算法·排序算法
少许极端1 小时前
算法奇妙屋(十四)-简单多状态dp问题
算法·动态规划·图解算法·简单多状态dp·打家劫舍问题·买卖股票问题全解
sen_shan1 小时前
《Vue项目开发实战》第八章:组件封装--vxeGrid
前端·javascript·vue.js
2***57421 小时前
Vue项目国际化实践
前端·javascript·vue.js
3秒一个大1 小时前
JavaScript 作用域:从执行机制到块级作用域的演进
javascript
星空的资源小屋1 小时前
VNote:程序员必备Markdown笔记神器
javascript·人工智能·笔记·django
2301_823438021 小时前
解析论文《复杂海上救援环境中无人机群的双阶段协作路径规划与任务分配》
人工智能·算法·无人机
embrace992 小时前
【C语言学习】结构体详解
android·c语言·开发语言·数据结构·学习·算法·青少年编程