c***g 发帖数: 472 | 1 给定一个字符串, 输出first non repeated char. 明确说了字符串只有26种字母, a-
z或者A-Z
请问这个题目到底有什么trick和trap, 就是扫描一次字符串计算每个字符出现的次数, 然后再扫描一次字符串输出第一个出现次数为1的就行了. 我写了一个code, 大家帮我看看有哪儿有什么问题么?
很直白很明了啊, 为什么不同的公司反复反复的问题?
#include
char firstNoRepeated(char arr[], int size) {
/*set the counter for the 26 characters */
int counter[26];
for(int i = 0 ; i < 26; i++) {
counter[i] = 0;
}
/* empty array */
if(size == 0 ) return '*';
/* only one element */ | c***g 发帖数: 472 | 2 谢谢你的指正, 但是我刚刚测试了, 输出的是d不是a | r****o 发帖数: 1950 | 3 不好意思我想错了。
【在 c***g 的大作中提到】 : 谢谢你的指正, 但是我刚刚测试了, 输出的是d不是a
| y**i 发帖数: 1112 | 4 我之前也没想明白,关键这里最后循环输出的时候检测的是原数组arr,而不是新构建
的hash table "counter"
【在 r****o 的大作中提到】 : 不好意思我想错了。
| r****o 发帖数: 1950 | 5 哈哈,hand.
【在 y**i 的大作中提到】 : 我之前也没想明白,关键这里最后循环输出的时候检测的是原数组arr,而不是新构建 : 的hash table "counter"
|
|