首页 > 代码库 > Java程序员笔试面试之String3
Java程序员笔试面试之String3
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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。