利用哈希表进行字符处理的两个例子
2016-07-28 21:05
183 查看
输入两个字符串,从一个字符串中删除第二个字符串中的字符,用一个哈希表记录了第二个字符串中的字符
定义一个函数,删除字符串中所有重复出现的字符,仍然利用哈希表记录字符串中已经出现的字符
void delete_ch(char *src, char *del_chs) { int hash[256]; int i; char *p_slow, *p_fast; int del_len = strlen(del_chs); p_slow = src; p_fast = src; memset(hash, 0, sizeof(int) * 256); for (i = 0; i < del_len; i++) hash[del_chs[i]] = 1; while (*p_fast) { if (hash[*p_fast] == 1) { p_fast++; } *p_slow++ = *p_fast++; } *p_slow = '\0'; }
定义一个函数,删除字符串中所有重复出现的字符,仍然利用哈希表记录字符串中已经出现的字符
void delete_repeatc(char *src) { if (src == NULL) return; int hashtable[256]; for (int i = 0; i < 256; i++) hashtable[i] = 0; char *fast = src; char *slow = src; while (*fast != '\0') { if (hashtable[*fast] == 0) { *slow = *fast; hashtable[*fast] = 1; slow++; } fast++; } *slow = '\0'; }
相关文章推荐
- 数据库完整性
- 【LeetCode】 009. Palindrome Number
- ACboy needs your help again!(栈和队列简单应用)
- java中字节流与字符流的区别
- 【Linux】进程间通信之共享内存
- 1197约瑟夫问题
- 复合主键和联合主键
- 变形课(DFS)
- 【LeetCode】 008. String to Integer (atoi)
- Android插件技术(二)ClassLoader分析
- android sensors
- jQuery里鼠标事件的一些简单实现
- 创建一个窗口
- 【插件-前端-bootstrap】快速上手布局web页面用什么?快速制表用什么?bootstrap及其插件(1)
- Linux之获取命令帮助
- NYOJ-26 孪生素数问题
- MFC定时器
- 第一次的软件经验
- 数据结构实验之栈二:一般算术表达式转换成后缀式
- iOS _Quartz2D---线段绘制方式(代码)