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;
    }
    

  • 相关阅读:
    indexOf & lastIndexOf
    document.referrer
    函数组合
    v-model绑定vuex中的数据
    图片懒加载
    flex布局问题
    js常见错误类型
    es5/es6继承的区别
    合并两个有序数组
    lettcode 90 子集II
  • 原文地址:https://www.cnblogs.com/aLittleBitCool/p/1952915.html
Copyright © 2011-2022 走看看