频道栏目
首页 > 资讯 > C++ > 正文

第一个只出现一次的字符

13-04-16        来源:[db:作者]  
收藏   我要投稿
[cpp]
#include<stdio.h>  
#include<string.h>  
#include<assert.h>  
 
unsigned int hashTable[256]; 
char queue[256]; 
 
char solve(char *str) 

    unsigned int i = 0; 
    memset(hashTable, 0, sizeof(hashTable)); 
    memset(queue, '0', sizeof(queue)); 
    int index = 0; 
    for(i=0; i<strlen(str); i++) 
    { 
        int loc = (int)str[i]; 
        if(hashTable[loc] == 0) 
        { 
            queue[index++] = str[i]; 
            hashTable[loc] = 1; 
        } 
        else 
        { 
            hashTable[loc] += 1; 
        } 
    } 
    for(i=0; i<index; i++) 
    { 
        int loc = (int)queue[i]; 
        if(hashTable[loc] == 1) 
            return queue[i]; 
    } 
    return NULL; 

 
void testSize() 

    //分辨sizeof与strlen的区别  
    char *s = "abcdefg"; 
    printf("%d %d\n", sizeof(s), strlen(s));//4 7  
    char ss[] = "abcdefg"; 
    printf("%d %d\n", sizeof(ss), strlen(ss));// 8 7  
     

 
void test() 

    char *str = "abaccdeff"; 
    char c = solve(str); 
    printf("%c\n", c); 

 
int main() 

    testSize(); 
    test(); 
    return 0; 

相关TAG标签
上一篇:常用算法帖(C#): Dynamic Object
下一篇:Oracle表空间(三)-修改、查看表空间自动增长
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站