1455. 檢查單詞是否為句中其他單詞的字首
阿新 • • 發佈:2020-11-26
題目:
給你一個字串 sentence 作為句子並指定檢索詞為 searchWord ,其中句子由若干用 單個空格 分隔的單片語成。
請你檢查檢索詞 searchWord 是否為句子 sentence 中任意單詞的字首。
如果searchWord 是某一個單詞的字首,則返回句子sentence 中該單詞所對應的下標(下標從 1 開始)。
如果 searchWord 是多個單詞的字首,則返回匹配的第一個單詞的下標(最小下標)。
如果 searchWord 不是任何單詞的字首,則返回 -1 。
字串 S 的 「字首」是 S 的任何前導連續子字串。
解法:分治法(想當於二分查詢)
程式碼:
class Solution {
public int isPrefixOfWord(String sentence, String searchWord) {
String[] str = sentence.split(" ");
return prefixOfWord(str,searchWord,0,str.length-1);
}
public int prefixOfWord(String[] str,String searchWord,int l,int r){ if(l==r){ //判斷是否是字首 // if(searchWord.length()>str[l].length()){ // return -1; // } // for(int i=0;i<searchWord.length();i++){ // if(str[l].charAt(i)!=searchWord.charAt(i)){ // return -1; // } // } // return l+1; return str[l].startsWith(searchWord)?l+1,-1; } int m = (l+r)/2; int lIndex = prefixOfWord(str,searchWord,l,m); int rIndex = prefixOfWord(str,searchWord,m+1,r); return lIndex==-1?rIndex:lIndex; }
}