• 对于一个字符串,请设计一个高效算法,找到第一次重复出现的字符。 给定一个字符串(不一定全为字母)A及它的长度n。请返回第一个重复出现的字符。保证字符串中有重复字符,字符串的长度小于等于500。


    // 第一种方法
    // ConsoleApplication10.cpp : 定义控制台应用程序的入口点。
    //

    #include "stdafx.h"
    #include <iostream>
    #include <vector>
    #include <string>
    using namespace std;
    class FirstRepeat {
    public:
    	char findFirstRepeat(string A, int n) {
    		// write code here
    		vector<char> cVec;
    		bool re = false;
    		char ch='a';
    		for (int i = 0;i < A.size();i++)
    		{
    			for (int j = 0;j < cVec.size();++j)
    			{
    				if (A[i] == cVec[j])
    				{
    					re = true;
    					ch = A[i];
    					break;
    				}
    			}
    			if (re == false)
    			{
    				cVec.push_back(A[i]);
    			}
    			else
    			{
    				break;
    			}
    			
    		}
    		return ch;
    	}
    };
    int main()
    {
    	string str = "qywyer23tdd";
    	FirstRepeat fr;
    	cout << fr.findFirstRepeat(str,str.size())<< endl;
    
    	return 0;
    };
    

    //第二种方法
    // ConsoleApplication10.cpp : 定义控制台应用程序的入口点。
    //

    #include "stdafx.h"
    #include <iostream>
    #include <vector>
    #include <string>
    using namespace std;
    class FirstRepeat {
    public:
    	char findFirstRepeat(string A, int n) {
    		// write code here
    	vector <int> cVec; 
    	char ch;
    	for (int i = 0;i < 128;i++)//建立一个存储字符的数组;共有128个字符
    	{
    		cVec.push_back(0);
    	}
    	
    	for (int i = 0;i < n;i++)
    	{
    		int num = A[i];
    	
    		cVec[num]= cVec[num]++;
    		cout << "char:" << A[i]  <<"   num:"<< cVec[num] << endl;
    		if (cVec[num] == 2)
    		{
    			ch= A[i] ;
    
    			break;
    		}
    
    	}
    	return ch;
    	}
    };
    int main()
    {
    
    	string str = "kdbaaak";
    	FirstRepeat fr;
    	cout << fr.findFirstRepeat(str,str.size())<< endl;
    
    	return 0;
    };
  • 相关阅读:
    升级python2.7, 实现python2.7与python3并存

    JDK一键部署, 新添加进度条
    银行分类概述
    个人银行结算账户类别
    银联刷卡POS机冲正
    银行怎样处理坏账和贷款展期
    数据加解密和数据签名验签
    一行三会/首批试点民营银行
    前端base64加密
  • 原文地址:https://www.cnblogs.com/wdan2016/p/6438312.html
Copyright © 2020-2023  润新知