首页 > 代码库 > 编程算法 - 第一个只出现一次的字符 代码(C)
编程算法 - 第一个只出现一次的字符 代码(C)
第一个只出现一次的字符 代码(C)
本文地址: http://blog.csdn.net/caroline_wendy
题目: 在字符串中找出第一个只出现一次的字符.
字符是char类型, 所以匹配256种可能, 采用hash表, 计算出现的次数, 再找到第一次出现的字符.
代码:
/* * main.cpp * * Created on: 2014.6.12 * Author: Spike */ /*eclipse cdt, gcc 4.8.1*/ #include <stdio.h> #include <stdlib.h> #include <string.h> char FirstNotRepeatingChar (char* pString) { if (pString == NULL) return ‘\0‘; const int tableSize = 256; unsigned int hastTable[tableSize]; for (unsigned int i=0; i<tableSize; ++i) hastTable[i] = 0; char* pHashKey = pString; while (*pHashKey != ‘\0‘) hastTable[*(pHashKey++)]++; pHashKey = pString; while (*pHashKey != ‘\0‘) { if (hastTable[*pHashKey] == 1) return *pHashKey; pHashKey++; } return ‘\0‘; } int main(void) { char pString[] = "abaccdeff"; char result = FirstNotRepeatingChar (pString); printf("result = %c\n", result); return 0; }
输出:
result = b
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。