重複跟0不做輸出。
/* ACM 10260 Soundex * mythnc * 2011/11/19 21:42:21 * run time: 0.004 */ #include <stdio.h> #define MAXCHAR 20 void print(char *); int main(void) { char str[MAXCHAR]; while (scanf("%s", str) == 1) print(str); return 0; } /* print: print out sounedex code */ void print(char *s) { int map[26] = {0, 1, 2, 3, 0, 1, 2, 0, 0, 2, 2, 4, 5, 5, 0, 1, 2, 6, 2, 3, 0, 1, 0, 2, 0, 2}; int stack, i; for (stack = -1, i = 0; s[i] != '\0'; i++) if (stack != map[s[i] - 'A']) if (map[s[i] - 'A'] != 0) { printf("%d", map[s[i] - 'A']); stack = map[s[i] - 'A']; } else stack = -1; putchar('\n'); }
沒有留言:
張貼留言