力扣周賽 5416. 檢查單詞是否爲句中其他單詞的前綴

給你一個字符串 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" 不是句子中任何單詞的前綴。
示例 4:

輸入:sentence = "i use triple pillow", searchWord = "pill"
輸出:4
示例 5:

輸入:sentence = "hello from the other side", searchWord = "they"
輸出:-1
 

提示:

1 <= sentence.length <= 100
1 <= searchWord.length <= 10
sentence 由小寫英文字母和空格組成。
searchWord 由小寫英文字母組成。
前綴就是緊密附着於詞根的語素,中間不能插入其它成分,並且它的位置是固定的——-位於詞根之前。(引用自 前綴_百度百科 )

 

class Solution {
public:
    int isPrefixOfWord(string sentence, string searchWord) {
        int key=1;
        for(int i=0,j=0;i<sentence.length();)
        {
            if(sentence[i]==' ')i++,key++,j=0;
            else if(sentence[i]==searchWord[j])
            {
                    i++,j++;
                    if(j==searchWord.length())return key;
            }
            else
            {
                j=0;
                while(i<sentence.length() && sentence[i]!=' ')i++;
                i++,key++;
            }
        }
        return -1;
    }
};

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章