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

Posted walxt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了每日一题 为了工作 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();
	}
}

  

*运行结果

技术图片

 

 

以上是关于每日一题 为了工作 2020 04011 第四十题的主要内容,如果未能解决你的问题,请参考以下文章

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

爱创课堂每日一题第四十一天- Doctype作用? 严格模式与混杂模式如何区分?它们有何意义?

爱创课堂每日一题第四十七天- 清除浮动的几种方法?

爱创课堂每日一题第四十二天- 你知道多少种Doctype文档类型?

爱创课堂每日一题第四十六天- 浮动元素引起的问题和解决办法?

爱创课堂每日一题第四十九天- 什么是 FOUC(无样式内容闪烁)?你如何来避免 FOUC?