zoukankan      html  css  js  c++  java
  • 每日一题 为了工作 2020 04011 第四十题

    /**
     * 
     * 问题:
     *    判断字符数组中是否所有的字符都只出现一次
     *    给定一个字符类型的数组chars[],判断  chars中是否所有的字符都只出现过一次。
     *    
     * 要求:
     *    时间复杂度为 O(N)
     * 解答:
     * 	   遍历一遍 chars, 用 map记录每种字符的出现情况, 这样就可以在遍历时发现字符重复
     *   出现的情况, map可以用长度固定的数组实现, 也可以用哈希表实现。
     *   
     * @author 雪瞳
     *
     */
    

      

    public class IsUniquel {
    
    	public static boolean isUniquel(char chars[]){
    		
    		if(chars == null){
    			return true;
    		}
    		
    		boolean map[] = new boolean[256];
    		for(int i=0;i<chars.length;i++){
    			if(map[chars[i]]){
    				return false;
    			}
    			map[chars[i]]=true;
    		}
    	
    		return true;
    	}
    }
    

      

    public class TestIsUniquel {
    
    	public static void main(String[] args) {
    		
    		char chars1[] ={'a','b','c'};
    		char chars2[] ={'a','b','c','b'};
    		
    		boolean result1 = IsUniquel.isUniquel(chars1);
    		showCharArray(chars1);
    		showResult(result1);
    		boolean result2 = IsUniquel.isUniquel(chars2);
    		showCharArray(chars2);
    		showResult(result2);
    	}
    	
    	public static void showResult(boolean flag){
    		if(flag){
    			System.err.println("各个字符元素均出现一次");
    		}else{
    			System.err.println("存在字符元素出现多次");
    		}
    	}
    	
    	public static void showCharArray(char array[]){
    		for (char arr : array) {
    			System.err.print(arr+"	");
    		}
    		System.out.println();
    	}
    }
    

      

    *运行结果

     

  • 相关阅读:
    linux内存不足时,为了防止报错,可以使用swap
    Linux SWAP 深度解读
    tomcat启用apr需要的三个组件(缺少可能会报错)
    阿里云无法ping通解决
    linux安装jdk环境
    linux下如何彻底删除mysql
    如何让百度收录自己的网站
    [SWF]在线预览文档下载
    [C#]线程处理
    [C#]关键字
  • 原文地址:https://www.cnblogs.com/walxt/p/12678750.html
Copyright © 2011-2022 走看看