码迷,mamicode.com
首页 > 其他好文 > 详细

每日一题 为了工作 2020 04011 第四十题

时间:2020-04-11 13:06:40      阅读:57      评论:0      收藏:0      [点我收藏+]

标签:重复   问题   一个   lag   ring   res   图片   alt   OLE   

/**
 * 
 * 问题:
 *    判断字符数组中是否所有的字符都只出现一次
 *    给定一个字符类型的数组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+"\t");
		}
		System.out.println();
	}
}

  

*运行结果

技术图片

 

 

每日一题 为了工作 2020 04011 第四十题

标签:重复   问题   一个   lag   ring   res   图片   alt   OLE   

原文地址:https://www.cnblogs.com/walxt/p/12678750.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!