![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
hash应用
文章平均质量分 72
yingsun
坚持下去~
展开
-
在一个字符串中找到第一个只出现一次的字符
在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。这个问题能够让我们想起hash表,因为包括汉字或者其他字符在内的所有字符都可以用16个bit也就是两个字节表示,所以总共有256个字节。要想求出一个字符串中第一个只出现一次的字符,首先是要统计每个字符出现的次数,然后在重新遍历字符数组,找到第一个hash表值为1的对应的字符。这也是hash表的应用。 #includ原创 2012-10-09 17:09:28 · 3647 阅读 · 2 评论 -
判断两个字符串是否匹配
原文地址:http://blog.csdn.net/v_JULY_v/article/details/6347454。同时也向大家推荐这个文章的博主,技术大牛。 如果两个字符串中所含字符的个数和对应的字符都相等,我们说这两个字符串匹配,比如:abcdea,aabcde。则这两个字符串相等。 特别喜欢这个方法,故转到我空间来,以便记录。 #include #include usin转载 2012-09-16 21:32:22 · 4662 阅读 · 0 评论 -
一个单词单词字母交换,可得另一个单词,如army->mary,成为兄弟单词。提供一个单词,在字典中找到它的兄弟。描述数据结构和查询过程
这个解法主要引子一篇博客的解答,我只是实现,方法引于:http://blog.csdn.net/yahohi/article/details/7985328。我实现了第二种方法。 解法一: 使用hash_map和链表。 首先定义一个key,使得兄弟单词有相同的key,不是兄弟的单词有不同的key。例如,将单词按字母从小到大重新排序后作为其key,比如bad的key为abd,原创 2012-10-15 17:52:14 · 6127 阅读 · 3 评论 -
输出一个字符串中没有重复的字符。如“baaca”输出“bac”。
这个问题同样是应用hash映射。直接给出代码: #include #include void filtrate(char *s) { int hash[256]={0}; int len=strlen(s); int i; for(i=0;i<len;i++) hash[s[i]]++; for(i=0;i<len;i++) if(hash[s[i]]!=0) { p原创 2012-10-15 21:40:16 · 1809 阅读 · 3 评论