栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > Java面试题

北京创维信软件公司面试题

Java面试题 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

北京创维信软件公司面试题

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

package item;

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<m;ii++){  
      for(int j=ii;j<m;j++){
//       前两个for循环实现正向字符串的所有可能出现的字符,除过一个字符。
       String sub=x.substring(ii,j+1);
       //System.out.println(sub);
       for(int jj=0;jj<m;jj++){
        for(int z=jj;z<m;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;

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()  
              {   return   (numitems==order-1)   ?   true   :   false;   }  
 
        public   int   finditem(long   key)               // return   index   of  
              {                                            // item (within   node)  
              for(int   j=0;   j<order-1;   j++)          // if found,  
                    {                                      // otherwise,  
                    if(itemarray[j]   ==   null)        // return   -1  
                          break;  
                    else   if(itemarray[j].ddata   ==   key)  
                          return   j;  
                    }  
              return   -1;  
              }     //end finditem  
 
        public   int   insertitem(dataitem   newitem)  
              {  
              //assumes node is not full  
              numitems++;                                              // will add new item  
              long   newkey   =   newitem.ddata;                   //key of  new item  
   
              for(int   j=order-2;   j>=0;   j–)                 //start on right,  
                    {                                              //examine items  
                    if(itemarray[j]   ==   null)                     //if  item null,  
                          continue;                                //go left one cell  
                    else                                            //  not null,  
                          {                                          // get its key  
                          long   itskey   =   itemarray[j].ddata;  
                          if(newkey   <   itskey)                     //if its bigger  
                                itemarray[j+1]   =   itemarray[j];   //shift it right  
                          else  
                                {  
                                itemarray[j+1]   =   newitem;   //insert new item  
                                return   j+1;                 // return index to  
                                }                            // new item  
                          }                            // end else (not   null)  
                    }     // end for                        //shifted all items,  
              itemarray[0]   =   newitem;                  //insert   new item  
              return   0;  
              }     // end insertitem()  
 
        public   dataitem   removeitem()                 // remove largest  item  
              {  
              //   assumes   node   not   empty  
              dataitem   temp   =   itemarray[numitems-1];    // save   item  
              itemarray[numitems-1]   =   null;             //disconnect   it  
              numitems–;                              //one less item  
              return   temp;                        //return  item  
              }  
 
        public   void   displaynode()             //format  “/24/56/74/”  
              {  
              for(int   j=0;   j<numitems;   j++)  
                    itemarray[j].displayitem();       // “/56”  
              System.out.println(“/”);               // final  “/”  
              }  
 
        }     //end class node  

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/264080.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号