Courage is grace under pressure

用我一辈子去追求

导航

<2006年9月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

统计

  • 随笔 - 17
  • 文章 - 1
  • 评论 - 2
  • 引用 - 0

常用链接

留言簿(43)

随笔档案

文章档案

相册

XML的Blog

搜索

  •  

最新评论

阅读排行榜

评论排行榜

三道简单算法题

第一题
/*
 求两个字符串的最大公共子串
 String s1 = "abcdefghigj";
 String s2 = "xyzabcdeigj";
 则输出abcde
*/

第二题
/*
输出杨辉三角形
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
*/

第三题
/*
String[] a = {"a","b","c","d","e","f","g","h","i","j","",""};
String[] b = {"f","a","c","f","e","k","l","y","p","o"};

如果b里面的数据在a里面没有,则把没有的数据放到""里面,超过的话,则报"已经满了,无法插入"~~
*/

解析:
第一题:
public class first
{
  public String search(String s1,String s2)
  {
  String max = "";
  for(int i=0; i<s1.length(); i++)
  {
    for(int j=i; j<s1.length(); j++)
    {
      String sub = s1.substring(i,j);
      if((s2.indexOf(sub)!=-1)&&sub.length()>max.length())
      {
        max = sub;
      }
    }
  } 
  return max;
  }
 
  public static void main(String[] args)
  {
    String s1 = "abcdefghigj";
    String s2 = "xyzabcdefigj";
    String output = new first().search(s1,s2);
    System.out.println(output);
  }
}

第二题:
public class second
{
  public static int[] general(int[] data)
  {
    int[] fanhui = new int[data.length+1]; 
    fanhui[0] = data[0];
    for(int i=1,j=1; j<data.length; i++,j++)
    {
      fanhui[i] = data[j-1] + data[j];
    }         
    fanhui[fanhui.length-1] = data[data.length-1];
    for(int k=0; k<fanhui.length; k++)
    {
      System.out.print(fanhui[k] + "\t");
    }
    System.out.print("\n");
    return fanhui;
  }
  public static void main(String[] args)
  {
    int times = 5;
    int[] chushizhi = {1};
    System.out.println(chushizhi[0]);
    for(int i=0; i<times; i++)
    {
    chushizhi = second.general(chushizhi);   
    }
  }
}

第三题:

import java.util.ArrayList ;

public class Third
{
public static void main(String[] args)
{
    String[] a = {"a","b","c","d","e","f","g","h","i","j","k","",""};
    String[] b ={"f","a","c","f","e","k","l"};
    Third third = new Third();
    third.compareAndReplace(a,b);
    StringBuffer output = new StringBuffer();
    for(int i=0; i<a.length; i++)
    output.append(a[i]); 
    System.out.println("a已变成" + output.toString());
  }
 public void compareAndReplace(String[] a,String[] b)
 {
   for(int i=0; i<b.length; i++)
   {
      outer:
     for(int j=0; j<a.length; j++)
     {
       if(b[i].equals(a[j]))
       break outer;
       if(j==a.length-1)
       {
       if(findFirstSpace(a)!=-1)
       {
         a[findFirstSpace(a)] = b[i];
       }
       else
       {
         System.out.println("已经满了,无法插入" + b[i]);
       }      
     }
   }
 }
 }
 
 public int findFirstSpace(String[] arg)
 {
   for(int m=0; m<arg.length; m++)
   {
     if(arg[m].equals(""))
     return m;    
   }
   return -1;
 }
}

posted on 2006-09-08 10:40 xyh 阅读(1587) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 
设为首页 加入收藏 与我联系 您的浏览器: