编写一个函数,在字符串中查找子字符串,并用另一个字符串替换所有这些事件。功能原型:
char* FindReplace(char* src, char* find, char* replace);
测试案例1:
INPUT:
SRC [] = “SIVASAI”。
找到[] = “AS”
替换[] = “ASAS”
输出:
SRC [] = “SIVASASAI”
测试案例2:
SRC [] = “SIVASAI”。
找到[] = “VASA”
替换[] = “A”
输出:
SRC [] = “SIAI”
解决方案应该是时间效率的。
答案 0 :(得分:4)
您可以使用:
1)Knuth-Morris-Pratt算法:http://en.wikipedia.org/wiki/Knuth-Morris-Pratt_algorithm
2)Boyer-Moore算法http://en.wikipedia.org/wiki/Boyer-Moore_string_search_algorithm
3)Rabin-Karp算法http://en.wikipedia.org/wiki/Rabin-Karp_string_search_algorithm