Проблема
Напишите программу, определяющую, является ли входная строка x подстрокой другой входной строки y. (Например, «летучая мышь» — это подстрока слова «убавлять», но не слова «бить».)
Решение
Ответ (на С++):
bool hasSubstring(const char *str, const char *find) { if( ! str || ! find ) return false; if (str[0] == '\0' && find[0] == '\0') return true; for(int i = 0; str[i] != '\0'; i++) { bool foundNonMatch = false; for(int j = 0; find[j] != '\0'; j++) { if (str[i + j] != find[j]) { foundNonMatch = true; break; } } if (!foundNonMatch) return true; } return false; }
Подробнее: http://articles.leetcode.com/2010/04/hacking-google-interview-from-mit.html