1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
// 1455. Check If a Word Occurs As a Prefix of Any Word in a Sentence
#include "leetcode.h"
/*
* given a 'sentence' that consists of some words separated by a single space,
* and a 'searchWord', check if 'searchWord' is a prefix of any word in
* 'sentence'. return the index of the word in 'sentence' (1-indexed) where
* 'searchWord' is a prefix of the word. if 'searchWord' is a prefix of more
* than one word, return the index of the first word (minimum index). if there
* is no such word, return -1. a prefix of a string 's' is any leading
* contiguous substring of 's'.
*/
int isPrefixOfWord(char *sentence, char *searchWord) {
int word_idx = 1;
char *search_ptr;
while (*sentence != '\0') {
search_ptr = searchWord;
while (*sentence == *search_ptr && *search_ptr != '\0') {
++sentence;
++search_ptr;
}
if (*search_ptr == '\0')
return word_idx;
while (*sentence != '\0' && *(sentence++) != ' ')
;
++word_idx;
}
return -1;
}
int main() {
char *s1 = "i love eating burger", *sw1 = "burg";
char *s2 = "this problem is an easy problem", *sw2 = "pro";
char *s3 = "i am tired", *sw3 = "you";
printf("%d\n", isPrefixOfWord(s1, sw1)); // expect: 4
printf("%d\n", isPrefixOfWord(s2, sw2)); // expect: 2
printf("%d\n", isPrefixOfWord(s3, sw3)); // expect: -1
}
|