设为首页 加入收藏

TOP

北京创维信软件公司面试题(一)
2014-11-24 01:40:40 来源: 作者: 【 】 浏览:27
Tags:北京 维信 软件公司 试题

1. 求字符串的正向反向最大公共字符串


package item;
/**
* 题目求某个字符串正向和反向的最大公共字符串,如ABCDCBA输出ABCDCBA,ABCDE输出A因为A是第一个,ABCDEDC输出CDEDC.
*/
public class max_zifu {
public void ss(String s){
String x=s;
String y=”";
String xy=”";
int m=x.length();
for(int i=m;i>0;i–){ //将字符串翻转
y=y+x.substring(i-1,i);
}
for(int ii=0;ii for(int j=ii;j // 前两个for循环实现正向字符串的所有可能出现的字符,除过一个字符。
String sub=x.substring(ii,j+1);
//System.out.println(sub);
for(int jj=0;jj for(int z=jj;z // 中间两个for循环实现反向字符串的所有遍历,同样除过一个字符串的情况
String subfan=y.substring(jj,z+1);
if(sub.equals(subfan)){
//如果出现相等则保存起来
if(sub.length()>xy.length()){
//如果后面有相等的公共字符串,并且其长度大于前两边相等的公共字符串,则将其覆盖掉。
xy=sub;
}
}
}
}
}
}
System.out.println(xy);
}
public static void main(String[] args) {
// TODO 自动生成方法存根
max_zifu ff=new max_zifu();
ff.ss(“1234566″);
}
}



package item;
/**
* 题目求某个字符串正向和反向的最大公共字符串,如ABCDCBA输出ABCDCBA,ABCDE输出A因为A是第一个,ABCDEDC输出CDEDC.
*/
public class Max_Zufu {
public static void main(String[] args) {
// TODO 自动生成方法存根
String x = “AE”,y=”",xy=”";
for (int i = x.length(); i > 0; i–) {
y = y + x.substring(i – 1, i);
}
for (int i = 0; i < x.length(); i++) {
for (int j = i; j < x.length(); j++) {
String sub = x.substring(i, j + 1);
int z = y.indexOf(sub);
if (z >= 0&&sub.length()>xy.length())
xy = sub;
}
}
System.out.println(xy);
}
}



2. 如何实现java中的树


import java.io.*;
class dataitem
{
public long ddata; //one data item

public dataitem(long dd) //constructor
{ ddata = dd;
}

public void displayitem() //display item, format “/27″
{ System.out.print(“/”+ddata);
}

} //end class dataitem

class node
{
private static final int order = 4;
private int numitems;
private node parent;
private node childarray[] = new node[order];
private dataitem itemarray[] = new dataitem[order-1];


// connect child to this node
public void connectchild(int childnum, node child)
{
childarray[childnum] = child;
if(child != null)
child.parent = this;
}

// disconnect child from this node, return it
public node disconnectchild(int childnum)
{
node tempnode = childarray[childnum];
childarray[childnum] = null;
return tempnode;
}

public node getchild(int childnum)
{ return childarray[childnum]; }

public node getparent()
{ return parent; }

public boolean isleaf()
{ return (childarray[0]==null) true : false; }

public int getnumitems()
{ return numitems; }

public dataitem getitem(int index) //get dataitem at index
{ return itemarray[index]; }

public boolean isfull()

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇一道算法面试题的解题思路 下一篇用递归算法解决汉塔问题

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: