From 79777ddcbf3f1450ed164ac4647dd6cffe6ca961 Mon Sep 17 00:00:00 2001 From: heqinghqocsh Date: Sat, 8 Aug 2015 15:52:11 +0800 Subject: [PATCH] =?UTF-8?q?Update=201.2=EF=BC=9A=E5=AD=97=E7=AC=A6?= =?UTF-8?q?=E4=B8=B2=E6=98=AF=E5=90=A6=E5=8C=85=E5=90=AB=E9=97=AE=E9=A2=98?= =?UTF-8?q?.c?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原来的计数排序算法无法完成类似sprintf(longStr,"ABCDFEGADCBHKJIAX"); sprintf(shortStr,"CBADIKJIMNM");的判断。如果我的建议有价值的话,就给颗星吧。 --- ...205\345\220\253\351\227\256\351\242\230.c" | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) 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)