find longest word in a sentence
bool is_letter(char c) {
return c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z';
}
string find_longest_word(const string& s) {
if(s.empty()) return "";
int i = 0, N = s.size();
int max_len = 1, start_idx = 0;
while(i < N) {
while(i < N && is_letter(s[i]) == false) i++; // move i to beginning of a word
int word_end = i;
while(word_end < N && is_letter(s[word_end]) == true) word_end++;
if(max_len < word_end - i) {
max_len = word_end - i;
start_idx = i;
}
i = word_end;
}
return s.substr(start_idx, max_len);
}