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

在一個字符串中找到第一個只出現一次的字符

編輯:C++入門知識

題目:在一個字符串中找到第一個只出現一次的字符。如輸入abaccdeff,則輸出b。 
分析:這道題是2006年google的一道筆試題。

 

[cpp]  /*
  Name: 
  Copyright: 
  Author: 
  Date: 15-06-11 12:05
  Description: :在一個字符串中找到第一個只出現一次的字符。如輸入abaccdeff,則輸出b
*/ 
#include<iostream>  
#include<iomanip>  
using namespace std; 
 
 
int main() 

   
    char s[]="abbadsSsfayjuioyopgaAWDDERRGTHRccdeff"; 
    int a[150]; 
    memset(a,0,sizeof(int)*150); 
    const int len=strlen(s); 
    int t; 
    for(int i=0;i<len;i++) 
    { 
       a[s[i]]++; 
    } 
    for(int i=0;i<len;i++) 
    { 
        if(a[s[i]]==1) 
          { 
          cout<<s[i]<<endl; 
          break; 
          } 
    } 
    system("pause"); 
    return 0; 
    } 

/*
  Name:
  Copyright:
  Author:
  Date: 15-06-11 12:05
  Description: :在一個字符串中找到第一個只出現一次的字符。如輸入abaccdeff,則輸出b
*/
#include<iostream>
#include<iomanip>
using namespace std;


int main()
{
 
    char s[]="abbadsSsfayjuioyopgaAWDDERRGTHRccdeff";
    int a[150];
    memset(a,0,sizeof(int)*150);
    const int len=strlen(s);
    int t;
    for(int i=0;i<len;i++)
    {
       a[s[i]]++;
    }
    for(int i=0;i<len;i++)
    {
        if(a[s[i]]==1)
          {
          cout<<s[i]<<endl;
          break;
          }
    }
    system("pause");
    return 0;
    }
 

分析:算法的復雜度為O(n)。開辟的整數數組大小為150,利用字符的ASCII碼做索引。

 

 

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