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

  • 相关阅读:
    日志记录
    Ajax
    servlet3.0新特性
    文件上传和下载
    过滤器
    listener
    JavaWeb案例:登陆和注册
    jsp
    cookie和session
    HttpRequest,HttpResponse,乱码,转发和重定向
  • 原文地址:https://www.cnblogs.com/aLittleBitCool/p/1952915.html
Copyright © 2011-2022 走看看