zoukankan      html  css  js  c++  java
  • 第一个只出现一次的字符

    题目:在一个字符串中找到第一个只出现一次的字符。如输入abaccdeff,则输出b。

    思路是第一次循环统计每个字符出现的次数(利用map),接着找到map中值为1的键即为所求的值。

    数模任重道远......继续.....

    //第一个只出现一次的字符
    //利用队列(错误的思路)
    //利用map
    #include<iostream>
    #include<queue>
    #include<map>
    using namespace std;
    //void myfind(char a[]){  //错误思路.............
    //	queue<char> my_queue;
    //	//my_queue.push(a[0]);
    //	for(int i=0;*(a+i)!='\0';i++){
    //		if(my_queue.empty()||my_queue.front()!=a[i])      //可以确保安全
    //			my_queue.push(a[i]);
    //		else
    //			my_queue.pop();
    //	}
    //	if(my_queue.empty()) cout<<"no answer"<<endl;
    //	else cout<<my_queue.front()<<endl;
    //}
    void myfind1(char *s){
    	map<char,int> my_map;
    	for(int i=0;*(s+i)!='\0';i++){
    			my_map[*(s+i)]++;
    	}
    	for(int i=0;*(s+i)!='\0';i++){
    		if(my_map[*(s+i)]==1){cout<<s[i]<<endl;return ;}
    	}
    	cout<<"error"<<endl;
    	return;
    }
    int main(void){
    	char *s="abaccdeff";
    	myfind1(s);
    	system("pause");
    	return 0;
    }
    

  • 相关阅读:
    学期总结
    C语言I博客作业09
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业06
    C语言I博客作业06
    C语言I博客作业05
    C语言I博客作业04
    作业02
    c语言 学习笔记之二 选择题2
  • 原文地址:https://www.cnblogs.com/aLittleBitCool/p/1952915.html
Copyright © 2011-2022 走看看