zoukankan      html  css  js  c++  java
  • 几道关于面试的题目

    实现一个算法,确定一个字符串的所有字符是否全部相同?

    最想想到的方法是通过比较该字符串的每一个字符,算法的时间复杂度为0(n2)次。

    另一种办法是可以利用set数据结构来实现,因为在set中不允许存在重复的字符。有一个有意思的地方是在进行判断前可以先判断字符串的长度,如果字符串的长度大于256,那么我们可以肯定该字符串中肯定有重复的字符。

    Python代码实现如下:

    a = "11fdwqdgf5hg56gfwdqwsdqwd";
    #采用set的方法
    def judge():
        t = set(a);
        N = len(a);
        if(t == N):
            return ('TRUE');
        else:
            print(t);
            return ('FALSE');
    #比较字符串中的每一个字符
    def judge2():
        N = len(a);
        for i in range(N):
            s = a[i];
            for j in range(i,N,1):
                if(s == a[j]):
                    return ('FALSE');
                
        return "true"
    
    
    if __name__ == "__main__":
        print(judge());
        print(judge2());
    

    C++代码:

    bool judge(const string str){
    	vector<bool> char_set(256,false); 
    	for (int i = 0;i<str.length();i++){
    		int val = str[i];
    		cout<<"val:"<<char_set[val]<<endl;
    		if(char_set[val]){
    			return false;
    		}else{
    			char_set[val] = true;
    		}	
    	}
    	return true;
    }
    

    Java代码:

    	public boolean judge(final String str){
    		
    		if (str.length() > 256){
    			return false;
    		}else{
    			boolean[] char_set = new boolean[256];
    			for (int i= 0;i<str.length();i++){
    				int val = str.charAt(i);
    				if (char_set[val]){
    					return false;
    				}
    				char_set[val] = true;
    			}
    		}
    		return true;
    		
    	}
    
  • 相关阅读:
    SpringBoot集成RocketMQ报错:Bad annotation definition in @ExtRocketMQTemplateConfiguration...
    RocketMQ分析
    SpringBoot 自定义 health Actuator 原理
    【质量】容错机制
    【Java】ByteBuffer介绍
    【AWS】Essentials
    【QA123】NFR 非功能性需求
    【JVM123】OOM分析和解决
    【网络123】Http返回码
    【网络123】HTTP连接
  • 原文地址:https://www.cnblogs.com/CBDoctor/p/4025372.html
Copyright © 2011-2022 走看看