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++){
    			 if(c[i]==‘\0‘){
        			 continue;
        		 }
    			 if(c[i]==c[j]){
    				 c[j]=‘\0‘;
    			 }
    		 }
    	 }
    	 int n=0;
    	 for(int i=0;i<c.length;i++){
    		 if(c[i]!=‘\0‘){
    			 c[n++]=c[i];
    		 }
    	 }
    	 return new String(c, 0, n);
     }
     public static void main(String args[]){

    	 String s="good";
    	 s = removeDuplicate(s);
    	 System.out.println(s);
    	 String s1="aabbcc";
    	 s1=removeDuplicate(s1);
    	 System.out.println(s1);
     }
}
结果:god
abc
时间: 2024-10-14 19:33:22

Java程序猿笔试面试之String4的相关文章

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程序员笔试面试之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

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

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

【程序猿笔试面试复习】之中的一个 网络与通信篇(一) 几大网络模型:OSI、TCP/IP、B/S与C/S、MVC结构

9.1网络模型 9.1.1. OSI七层模型 OSI(Open System Interconnection,开放系统互联)七层网络模型称为开放式网络互联參考模型.其为国际标准组织指定的一个指导信息互联.互通和协作的网络规范. 开放是指仅仅要遵循OSI标准,位于世界上不论什么地方的不论什么系统之间都能够进行通信,开放系统是指遵循互联协议的实际系统,如电话系统. 从逻辑上能够将OSI开放系统互联分为七层模型,由下至上分别为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层. 当中.上三层称

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程序员笔试面试之String3

public class SameString { //思想二:每一个字符都对应着自己的ASC码,第一个思想的算法复杂度为O(nlogn),一般可以利用空间来降低时间复杂度 //可以开辟一个大小为256的数组空间,并且将256个数组元素都置为0,然后遍历第一个字符串把字符的ASC作为数组下标,数组元素都加1, //然后遍历第二个字符串将数组元素的各个值都减1,如果最后数组元素的值为0的话说明就是相同的字符串.此算法的时间复杂度为O(n) public static void compare(St

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--; } }