程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++求字符串第一次只出現一次的字符

C++求字符串第一次只出現一次的字符

編輯:C++入門知識

C++求字符串第一次只出現一次的字符


//求字符串中第一次只出現一次的字符。
#include 
#include 
#define _SIZE_ 255
using namespace std;

struct Node
{
    int index;//存儲下標。
    int num;//存儲個數。
    Node() :index(-1), num(0){}
};
char Grial(char *str)
{
    Node node[_SIZE_];//如果只考慮26個字符就不需要這麼多空間。
    int slen = strlen(str);
    int i = 0;
    int mix = 0x7fffffff;
    for (; i < slen; i++)
    {
        node[str[i]].index = i;//下標保存。
        node[str[i]].num++;//保存個數。
    }
    for (i = 0; i < _SIZE_; i++)
    {
        if (node[i].num == 1)
        {
            mix = mix>node[i].index ? node[i].index : mix;
            //求出第一次只出現一次的下標。
        }
    }
    return str[mix];
    //總共的時間復雜度是n(遍歷的一遍)+m(總共出現一次的總個數)。
    //空間復雜度,開辟了一組額外的節點空間來存儲數據。
}
int main()
{
    char *p = "1222345678234543";
    cout<

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved