码迷,mamicode.com
首页 > 编程语言 > 详细

Java程序员笔试面试之String3

时间:2014-11-02 21:04:09      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:blog   ar   java   for   2014   log   时间   new   as   

public class SameString {
    //思想二:每一个字符都对应着自己的ASC码,第一个思想的算法复杂度为O(nlogn),一般可以利用空间来降低时间复杂度
	//可以开辟一个大小为256的数组空间,并且将256个数组元素都置为0,然后遍历第一个字符串把字符的ASC作为数组下标,数组元素都加1,
	//然后遍历第二个字符串将数组元素的各个值都减1,如果最后数组元素的值为0的话说明就是相同的字符串。此算法的时间复杂度为O(n)
	public static void compare(String s1,String s2){
		byte[] b1=s1.getBytes();
		byte[] b2=s2.getBytes();
		int[] bCount=new int[256];
		
		for(int i=0;i<256;i++){
			bCount[i]=0;
		}
		for(int i=0;i<b1.length;i++){
			bCount[b1[i]-'0']++;
		}
		for(int i=0;i<b2.length;i++){
			bCount[b2[i]-'0']--;
		}
		for(int i=0;i<256;i++)
			if(bCount[i]!=0){
				System.out.println("not equal!");
				return;
			}
			   System.out.println("equal!");
			
		
	}
	public static void main (String args[]){
		String s1="aaabbbccc";
		String s2="ababacbcc";
		compare(s1, s2);
		String s3="aabbccdd";
		String s4="abc";
		compare(s3, s4);
		
	}
	
}
结果:equal
not equal


Java程序员笔试面试之String3

标签:blog   ar   java   for   2014   log   时间   new   as   

原文地址:http://blog.csdn.net/dq3wrr/article/details/40713521

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