作业题吧。
跟“所属社区:  Java J2SE / 基础类”好像也没有什么关系吧。
哈哈,路过。

解决方案 »

  1.   

    /*  习题二 第16小题求两个字符串中所有的共同的子字符串*/import hua.Xuw;
    public class Ex0216
    {
    public static boolean content(String str1,String str2)//str2是否为str1的子字符串
    {
    for(int i=0;i<=str1.length()-str2.length();i++)
    if((str1.substring(i,i+str2.length())).equals(str2)) return true;
    return false;
    }
    public static void main(String args[])
    {
    String str1,str2,tmp="";
    boolean flag,flag1;
    int temp,len=0;
    Xuw x=new Xuw(System.in);
    System.out.println("Input the first string:");
    str1=x.getString();
    System.out.println("Input the second string:");
    str2=x.getString();
    System.out.println("\nthe first string is: "+str1);
    System.out.println("the second string is: "+str2);
    String out[]=new String[str1.length()];
    len=0;
    for(int i=0;i<str1.length();i++)
    {
    temp=i;
    for(int j=0;j<str2.length();j++)
    {
    flag1=true;

    flag=false;
    for(int k=j;temp<str1.length()&&k<str2.length()&&(str1.charAt(temp)==str2.charAt(k));k++)
    {
    flag=true;
    temp++;
    tmp=str2.substring(j,k+1);
    }
    if(flag)
    {
    for(int h=0;h<len;h++)
    {
    if(content(out[h],tmp))
    {
    flag1=false;
    break;
    }
    if(content(tmp,out[h]))
    {
    out[h]=tmp;
    for(int m=h+1;m<len;m++)
    if(content(tmp,out[m]))
    {
    for(int n=m+1;n>len;n++)
    out[n-1]=out[n];
    }
    flag1=false;
    break;
    }

    }
    if(flag1)
    {
    out[len]=tmp;
    len++;
    }
    }
    }
    }
    if(out[0]==null) System.out.println("There is none mutual substring!");
    else
    {
    System.out.println("The  mutual substrings are:");
    for(int i=0;i<len;i++)
    System.out.println(out[i]);
    }
    }
    }这是求出所有的共有字符串  ,最大的就在里边了 这是很久以前写的了 可能有些不严整的地方   自己改进
      

  2.   

    晕死啊
    这不是wicresoft的笔试题么
    其实很简单的
    你总知道KMP吧(8要说8知道,KMP去年微创就考过了)
    KMP8是传3个参么,最后一个参8是搜索起始位置么
    传回的8是子串的首字符位置么那么一个while不等于-1就可以了亚
    其实就是KMP,next和主函数一模一样写
    效率是O(m+n)
    优化不能
    其实最好的办法就是java的indexOf+while阿呵呵,100%8会错,不过就是没有那个快而已
    也可以写java的next函数,8过估计N麻烦,特别是以java这种繁琐的语法而言我写的到处是箭头,ft,因为居然给出了调用代码。。ft,蛮好不写的
    (仔细想过,似乎while里面必须要+1不能+s2的长度的说。)
      

  3.   

    这个自己写有何难,自己不会设计算法怎么做程序员。不想做程序员,上CSDN有多大意义
      

  4.   

    第一题更简单,8过我居然用bubble(寒-_-!)
    因为看到sql题目巨简单啊哈哈。。8过居然还是写错了sql唉
    弱项就是弱项阿~~~一个when写到子搜索里面去了
    召唤大人给出sql
      

  5.   

    bobxie(bobxie):
    结贴太快了。虽然结了贴子,我还是想贴一下,不然我不是吹牛了。import javax.swing.*;public class str_str {
    public static void main(String[] args){
    String str1=JOptionPane.showInputDialog("please input the first number:");
    //第一个字符串
    String str2=JOptionPane.showInputDialog("please input the second number:");
    //第二个字符串
    if(str1.length()<str2.length()){
    String str3;
    str3=str1;
    str1=str2;
    str2=str3;
    }//使str1总不会比str2短
    int len1=str1.length();
    //第一个字符串的长度
    int len2=str2.length();
    //第一个字符串的长度
    int max=0;
    //二个字符串中相等且最长的子串的长度
    int count=0;
    //记录在某一次查询中有多少个连续的字符相等
    int tgc=0;
    //记录符合要求的字符串的个数
    String[] tg=new String[len1*len2];
    //为可能符合的字符串开辟空间以便存储
    //以下开始进入主题
    for(int m=0;m<len2;m++){
    //===================================================
    for(int n=len2;n>=m;n--){
    String mstr="";
    mstr=str2.substring(m,n);
    //System.out.println(mstr);
    int k=str1.indexOf(mstr);
    //------------------------------------
    if(k!=-1 && n-m>max){
    tgc++;
    tg[tgc]=mstr;
    //------------------------------------
    }
    }
    //====================================================
    }
    //->->->->->->->->->->->->->->->->->->->->->->->->->->
    int[] len=new int[tgc];
    //挑出null
    for(int i=0;i<tgc;i++){
    if(tg[i]==null){
    tg[i]="";
    }
    }
    //计算找出的各字符串的长度
    for(int i=0;i<tgc;i++){
    len[i]=tg[i].length();
    }
    //老掉牙的问题:和排序有关的,求最大值
    int mm=len[0];
    for(int i=1;i<tgc;i++){
    if(len[i]>=mm){
    mm=len[i];
    }
    }
    //打印出符合要求的字符串
    for(int i=0;i<tgc;i++){
    if(len[i]==mm){
    System.out.println(tg[i]);
    }
    }
    //->->->->->->->->->->->->->->->->->->->->->->->->->->
    }
    }