Implement an algorithm to determine if a string has all unique characters What if you can not use additional data structures?
如何判断字符串中是否有重复的字符?
bool isUniqueChar(string s) { bool h[256]={0}; for (int i=0; i<=s.size()-1; ++i) { if (h[s[i]]) return false; h[s[i]] = 1; } return true; }
如何将C的字符数组(char *)逆转?
Write code to reverse a C-Style String (C-String means that “abcd” is represented as five characters, including the null character )
void cStringReverse(char *s) { char *end = s; char tmp; if (s) { while (*end) ++end; --end; while (s < end) { *s++ = *end--; } } }
如何将字符数组重复的字符去除?不允许使用额外的存储空间。
Design an algorithm and write code to remove the duplicate characters in a string without using any additional buffer. NOTE: One or two additional variables are fine. An extra copy of the array is not.
void removeDuplicateChar(char *s) { char *end = s+1; char *p = s+1; if (s) { while (*p) { char *q = s; while (q < p) { if (*p == *q) { break; } ++q; } if (p == q) { *end = *p; ++end; } ++p; } *end = '\0'; } }