diff --git "a/ebook/code/c/1.2\357\274\232\345\255\227\347\254\246\344\270\262\346\230\257\345\220\246\345\214\205\345\220\253\351\227\256\351\242\230.c" "b/ebook/code/c/1.2\357\274\232\345\255\227\347\254\246\344\270\262\346\230\257\345\220\246\345\214\205\345\220\253\351\227\256\351\242\230.c" index 1937ea058..6f96f243a 100644 --- "a/ebook/code/c/1.2\357\274\232\345\255\227\347\254\246\344\270\262\346\230\257\345\220\246\345\214\205\345\220\253\351\227\256\351\242\230.c" +++ "b/ebook/code/c/1.2\357\274\232\345\255\227\347\254\246\344\270\262\346\230\257\345\220\246\345\214\205\345\220\253\351\227\256\351\242\230.c" @@ -108,7 +108,7 @@ void countSort(char * oldArr, char * newArr) pos = count[*(oldArr + i) - 'A']; while (newArr[pos - 1] != 0) { - pos++; + pos--; } newArr[pos - 1] = *(oldArr + i); } @@ -154,6 +154,7 @@ bool contain2(char * stra, char * strb) int lena = strlen(tmpA); int lenb = strlen(tmpB); int i, j; + /* for (i = 0, j = 0; j < lena && i < lenb; j++) { if (tmpA[j] == tmpB[i]) @@ -173,6 +174,24 @@ bool contain2(char * stra, char * strb) { return false; } + */ + for(i = 0,j = 0;i < lena && j < lenb;){ + if(tmpA[i] == tmpB[j]){ + j++; + while(tmpA[i] == tmpB[i + 1]){ + i++; + } + }else if(tmpA[i] > tmpB[j]){ + return false; + }else{ + i++; + } + } + if(j == lenb){ + return TRUE; + }else{ + return false; + } } //hash测试法 bool contain3(char * stra, char * strb)