查找一个字符串中第一个只出现两次的字符

来源:互联网 发布:网络代理打鱼怎么判 编辑:程序博客网 时间:2024/05/22 14:08
//方法一:时间复杂度O(N*N)#include<iostream>#include<string>using namespace std;char FindChar(char* str){    int i, j;    int len = strlen(str);    for (i = 0; i < len; i++)//遍历字符串    {        int count = 0;        for (j = 0; j < len; j++)//统计字符出现次数        {            if (str[i] == str[j])                count++;        }        if (count == 2)//找到则返回该字符            return str[i];    }    return '*';//找不到则返回一个*}int main(){    char *str = "abcdefabcdefabc";    cout << FindChar(str) << endl;    system("pause");    return 0;}方法二:时间复杂度O(N)#include<iostream>using namespace std;char FindChar(char* str){    char hashtable[256] = { 0 };//定义哈希表保存字符出现的次数    size_t i = 0;    for (; i < strlen(str); i++)    {        hashtable[str[i]]++;    }    for (i = 0; i < strlen(str); i++)    {        if (hashtable[str[i]] == 2)//找到则返回下标            return str[i];    }    return '*';//找不到则返回一个*}int main(){    char *str = "adbda";    cout<<FindChar(str)<<endl;    system("pause");    return 0;}
阅读全文
0 0
原创粉丝点击