日期:2014-05-20  浏览次数:20842 次

一个笔试试题!!!
已知两个String对像String   s2,String   s2,它们已经事先用ASC码排好序了,
写一个程序合并两个String   ,得到的结果应该是例如:String   s1= "abc ",  
String   s2= "abc ",   s= "aabbcc ";得到的结果也是排序的  
要求:不能用库函数
2,写一个测试程序测试

------解决方案--------------------
用charat 一个一个拿出来 放到散列表里 再拿出来连上
------解决方案--------------------
如果真的什么库函数都不能用,就只有自己一个个比较了。
public class test {
public static void main (String arg[]) {
String s1= "abcde ",s2= "abcefg ";
String s=StringCat(s1,s2);
System.out.println(s);
}
public static String StringCat(String s1, String s2) {
String s= " ";
int i1=0,i2=0;
while(i1 <s1.length() || i2 <s2.length()) {
if((i1 <s1.length() && i2> =s2.length()) || (i1 <s1.length() && i2 <s2.length() &&s1.charAt(i1) <s2.charAt(i2)))
s=s+s1.charAt(i1++);
else s=s+s2.charAt(i2++);
}
return s;
}
}

------解决方案--------------------
干嘛有用不用
import java.util.*;
class Example
{
public static void main(String args[])
{
String s1=new String( "abc ");
String s2=new String( "abc ");
String s3=s1.concat(s2);
char a[]=s3.toCharArray();
Arrays.sort(a);
for(int i=0;i <a.length;i++)
{
System.out.print(a[i]);
}
}
}
------解决方案--------------------
学习,学习
------解决方案--------------------
其实这应该是一个多项式相加的问题,我想C版的数据结构书上会有你想要的答案,是一种模式匹配
不过,也可以向楼上那样一个个地拿出来比较
------解决方案--------------------
学习
------解决方案--------------------
路过,学习下~
------解决方案--------------------
恩,能用库函数不能用不好,尤其是作为笔试题!

面试的目的一个是看一个人运用已经掌握的知识解决新问题的能力,一个就是看看这个人的知识面!


------解决方案--------------------
这就是数据结构里的合并问题,是在考你基础知识
------解决方案--------------------
路过学习。。。。。。。。。。
------解决方案--------------------
import java.util.*;
public class Abc
{
public static void main(String[] args)
{
String str1= "abcdefgaaarrr ";
String str2= "abcdefg12345 ";
StringBuffer sb=new StringBuffer();
sb.append(str1);
sb.append(str2);
char[] chs=(sb.toString()).toCharArray();
for(int i=0;i <chs.length-1;i++)
{
for(int j=i+1;j <chs.length;j++)
{
if(chs[i]> chs[j])
{
char temp=chs[i];
chs[i]=chs[j];
chs[j]=temp;
}
}
}
System.out.print(chs);
}
}
------解决方案--------------------
归并排序其中的一步而已,看看算法书吧
------解决方案--------------------
嘿嘿。。。真是谢谢 你们这些热心的朋友。
看来我自己还得再把数据结构的书看看。
------解决方案--------------------
这道题目的本意不是排序
可以定义count[26]={0} 数组//若果只是26个字母
遍历各个串
count[str[i]- 'a ']++;
然后收集
if(count[i])
{