1455. Check if a Word Occurs as a Prefix of Any Word in a Sentence

1455. Check If a Word Occurs As a Prefix of Any Word in a Sentence #

题目 #

  • 给定字符串 sentence 并指定检索词为 searchWord ,句子由 空格 分隔的单词组成。
  • 检查检索词 searchWord 是否为句子 sentence 中任意单词的前缀。
    • 如果 searchWord 是某一个单词的前缀,则返回句子 sentence 中该单词所对应的下标(下标从 1 开始)。
    • 如果 searchWord 是多个单词的前缀,则返回匹配的第一个单词的下标(最小下标)。
    • 如果 searchWord 不是任何单词的前缀,则返回 -1
  • 字符串 s前缀s 的任何前导连续子字符串。

思路 #

双指针 #

代码 #

双指针 #

class Solution {
    public int isPrefixOfWord(String sentence, String searchWord) {
        int ptr1 = 0, ans = 0;
        while (ptr1 < sentence.length()) {
            int ptr2 = ptr1;
            ans += 1;
            /** 检查当前词的匹配状态 */
            while (ptr2 < ptr1 + searchWord.length() && sentence.charAt(ptr2) == searchWord.charAt(ptr2 - ptr1)) ptr2 += 1;
            if (ptr2 == ptr1 + searchWord.length()) return ans;
            /** 若失配,检查下一个词的匹配状态 */
            else {
                ptr1 = ptr2;
                while (ptr1 < sentence.length() && sentence.charAt(ptr1) != ' ') ptr1 += 1;
                ptr1 += 1;
            }
        }
        return -1;
    }
}