在一个字符串中找到第一个只出现一次的字符
2016-06-04 15:46
323 查看
要想到用哈希表来解决问题
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////`const int N = 26;
int bit_map
;
void findNoRepeat(char *src)
{
int pos;
char *str = src;
int i ,len = strlen(src);
} `
char FirstNotRepeatChar(char* pString) { if (!pString) return '\0'; const int tableSize = 256; int hashTable[tableSize] = { 0 }; //存入数组,并初始化为0 char* pHashKey = pString; while (*(pHashKey) != '\0') hashTable[*(pHashKey++)]++;//统计个数 while (*pString != '\0') { if (hashTable[*pString] == 1) return *pString; pString++; } return '\0'; //没有找到满足条件的字符,退出 }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////`const int N = 26;
int bit_map
;
void findNoRepeat(char *src)
{
int pos;
char *str = src;
int i ,len = strlen(src);
//统计 for(i = 0 ; i < len ;i ++) bit_map[str[i]-'a'] ++; //从字符串开始遍历 其bit_map==1 那么就是结果 for(i = 0 ; i < len ; i ++) { if(bit_map[str[i]-'a'] == 1) { printf("%c",str[i]); return ; } }
} `
相关文章推荐
- Android 系统属性
- android6.0 power显示(亮度等)深入分析(二)DisplayManagerService
- delphi多线程TThread详解
- 智能指针2--ScopedPtr
- MySQl自动编号与主键
- 关于在某视图的scrollview上添加子控制器的视图时遇到的一些问题
- Java语言的11大特点你知道吗?
- LeetCode Merge Two Sorted Lists
- 微服务、单体应用以及NoOps
- HDU 2073 无限的路
- Android 关于Logcat的日志过滤
- (C++) 作用域和链接
- 在程序中利用信号量同步来模拟生产者与消费者
- IT求职中,笔试、面试的算法准备
- 实现pageRank
- ArrayList和Vector的异同
- Geekban极客班
- POJ 2367 Genealogical tree【拓扑排序】
- composer嵌入框架以及创建
- ecshop入门知识