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

时间: 2024-11-10 11:06:37

Java程序员笔试面试之String3的相关文章

Java程序员笔试面试之Java基础

1.==与equals与hashcode的区别作用 ①==是用来比较数值是否相等,也可以用来比较引用是否相等,也就是比较是否指向同一个对象. ②equals方法是Object提供的方法,因此每一个对象都有equals方法,他的实现也是通过==运算符实现的,所以在没有覆盖equals()方法的前提下,equals方法跟==是完全一样的 ③相比==运算符equals方法特殊之处就是他可以被覆盖,例如String,他可以比较2个独立对象的内容是否相等,例如: String s1=new String(

Java程序员笔试面试之java基础知识

1.finalize()方法的使用 2.Java程序初始化的顺序 3.Java中变量的类型 4.构造函数 5.为什么java中有些interface没有任何方法 6.java中的反射机制是什么 7.java中创建对象的方式有多少种 8.多态实现的机制是什么,编译时多态,运行时多态, 9.overload和override区别,以及各自的注意事项 10.abstract class和interface有什么区别

Java程序员笔试面试之String2

2.如何判断2个字符串是否有相同的字符组成 例如"aaaabbc"跟"abcbaaa" 2种思想 import java.lang.reflect.Array; import java.util.Arrays; //思想一:先将2个String排序,在比较,所谓2个字符串相等指的是构成string的字母以及个数一样,顺序可以不一样 public class TheSameString { public static void compare(String s1,St

Java程序员笔试面试之String5

.如何统计String中有多少个单词? public class CountWord { public static int countWord(String s){ int count=0; int word=0; for(int i=0;i<s.length();i++){ if("".equals(s.charAt(i))) word=0; else if(word==0) { word=1; count++; } } return count; } public stat

Java程序员笔试面试之String1

1.如何实现字符串的反转例如:"how are you"--->"you are how" public class InverseString { public void swap(char[] arr,int front,int end){//将char[]反转 while(front<end){ char temp=arr[end]; arr[end]=arr[front]; arr[front]=temp; front++; end--; } }

Java程序员笔试面试之String

1.如何实现字符串的反转例如:"how are you"--->"you are how" 2.如何判断2个字符串是否有相同的字符组成 例如"aaaabbc"跟"abcbaaa" 3.如何删除String中重复的字符good 4.如何统计String中有多少个单词 5.如何输出String的所有组合

Java程序员笔试面试之String4

如何删除String中重复的字符good? 思想一:蛮力法,进行双重循环,此算法的复杂度为O(n^2),n是指字符串的长度 public class RemoveSameChar { public static String removeDuplicate(String s){ char[] c=s.toCharArray(); for(int i=0;i<c.length;i++){ if(c[i]=='\0'){ continue; } for(int j=i+1;j<c.length;j

CSDN日报20170320——《Java 程序员的面试经历和题库》

[程序人生]Java 程序员的面试经历和题库 作者:nuaazhaofeng 最近打算换城市了,受不了北京的雾霾了,所以准备逃离啦.所以一直在面试中,整理了下最近遇到的一些面试题,供大家参考.其中会包含一些面试的小经验,如果您是面霸,希望能给予指导.自己不是大牛,如果您是大牛,也可以忽略之.我面试的岗位是Java后端开发工程师. [Python]7行Python代码的人脸识别 作者:半吊子全栈工匠 随着去年alphago 的震撼表现,AI 再次成为科技公司的宠儿.AI涉及的领域众多,图像识别中的

阿里Java面试官分享初级Java程序员通过面试的技巧

本来想分享毕业生和初级程序员如何进大公司的经验,但后来一想,人各有志,有程序员或许想进成长型或创业型公司或其它类型的公司,所以就干脆来分享些提升技能和通过面试的技巧,技巧我讲,公司你选,两厢便利. 毕业生和初级程序员(一般是工作经验3年以下)大多处于事业的青黄不接的阶段,在找工作时往往会遇到缺乏实际项目经验的瓶颈,作为技术面试官,我也经常在面试过程中感受到这些候选人缺乏实际经验的缺陷.不过本人之前做过java兼职培训老师,也总结了些这批人群提升实际技能和面试技能的技巧,最近也老有人来问我这个,所