关于字符串的一些简单编码题

首先(提出问题):输出字符串中第一个只出现一次的字符

这个题目是一个面试题目,题目要求是使用两种以上的方法来解决这个问题。

其次(分析问题):题目很简单,字符串中第一个只出现一次的字符?那么,我们首先将字符串中出现的字符默认为小写的26个字母吧(添加一些其他的字符一样处理,因为只要知道他们的ASCII码值就可以了)

最后(解决问题):

首先我将作者原来的代码给贴出来:

C++类代码:

#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;

int main(int argc, char* argv[])
{
    string s="afasdfc";
    int size=s.size();
    for(int i=0;i<size;i++)
    {
        if(s.find_first_of(s[i])==s.find_last_of(s[i]))
        {
            cout<<"the first char is : "<<s[i]<<endl;
            break;
        }
    }
    return 0;
}

在作者的代码中间使用了两个函数,最开始我是不知道这是啥意思的。网上给百度了一下函数的含义:

find_first_of()和 find_last_of():查看链接:http://blog.csdn.net/zhenyusoso/article/details/7286456

讲的是在字符串中查找到()中的字符,并返回对应的下标。

 那么我是不知道这个函数的,想法也和作者的很不一样——通过统计每个字符出现次数,最后在确定第一个是什么

我要坚持一年,一年后的成功才是我想要的。
原文地址:https://www.cnblogs.com/tianxia2s/p/4918500.html