计算字符串中含有的不同字符的个数(华为OJ)

题目描述 
编写一个函数,计算字符串中含有的不同字符的个数。字符在ACSII码范围内(0~127)。不在范围内的不作统计。

输入描述: 
输入N个字符,字符在ACSII码范围内。

输出描述: 
输出范围在(0~127)字符的个数。

输入例子: 
abc

输出例子: 

3

解答1(使用集合set):

#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include <set>
using namespace std;

int main()
{
    string str;
    int i;
    set<char>s;
    while(cin>>str)
    {
       for(i=0;i<str.length();++i)
       {
          if(str[i]>0&&str[i]<127)
          {
            s.insert(str[i]);
          }
       }  
       cout<<s.size()<<endl;     
    }
    return 0;
}

解答2(使用数组):

#include<iostream> 
using namespace std;

int main()
{
    char ch;
    int arr[128]={0};
    int count=0;
    while(cin>>ch){
        if(ch>=0 && ch<=127){
            arr[ch]++;
        }
    }
    for(int i=0;i<128;i++){
        if(arr[i]>0)
            count++;
    }
    cout<<count<<endl;
    return 0;
}


猜你喜欢

转载自blog.csdn.net/jirryzhang/article/details/79393655
今日推荐