190104作業-刪除字串中指定字元
阿新 • • 發佈:2019-01-05
刪除字串中指定的字元。 例如 “abcdaefaghiagkl“ 刪除‘a’,以後: “bcdefghigkl”
此演算法僅需要一次遍歷,只有O(n)的時間複雜度
我原先的演算法需要O(n^2)的時間複雜度
#include <stdio.h> #include <stdlib.h> #define MAX 100 void delete_char() { char c; char ch[MAX]; char *p, *q; while (rewind(stdin), gets_s(ch, MAX) != NULL && (c = getchar()) != EOF) { p =q= ch; while (*p) { if (*p != c) { *q++ = *p; } ++p; } *q = 0; puts(ch); /*char *temp; while (*p) { if (*p == c) { temp = p; while (*temp) { *temp = *(temp + 1); ++temp; } } ++p; }雙層巢狀,O(n^2)的時間複雜度*/ } } int main() { delete_char(); system("pause"); }