zoukankan      html  css  js  c++  java
  • 面试题记录,备忘

    1  找到两个字符串中的公共子字符串,如stra="abfdsaf",strb="fdsgdfg",找出两个字符串的公共字串fds,由于java还不熟练,不是最优的方案,有机会优化

     1 public class MyTestDemo {
     2     //被测试字符串a
     3     String stra = "abfdsaf";
     4     //被测试字符串a
     5     String strb = "abfdsaf";//fdsgdfg
     6     //存储两个字符串的最大长度和最小长度
     7     int min,max;
     8     //判断出最长的字符串后,将长度最大的字符串存储再strMax,长度小的字符串给strMin
     9     String strMin,strMax;
    10     //存储找到的所有字符串
    11     ArrayList<String> sameString = new ArrayList();
    12     //存储最大子字符串
    13     String result;
    14     
    15     @Test
    16     public void getSameSubString(){
    17         //找出长短字符串,并赋值给变量
    18         if(stra.length() <= strb.length()?true:false){
    19             min = stra.length();
    20             max = strb.length();
    21             
    22             strMin = stra;
    23             strMax = strb;
    24             
    25             isSubString();
    26         }
    27         else{
    28             min = strb.length();
    29             max = stra.length();
    30             
    31             strMin = strb;
    32             strMax = stra;
    33             
    34             isSubString();
    35         }
    36     }
    37     
    38     /**
    39      * 遍历最小长度字符串,截取子字符串,依次左移截取,每次遍历截取子字符串,并使用indexOf方法,判断截取的字符串是否在最大长度的字符串中出现,如果出现就添加到ArrayList中,最后遍历ArrayList,找到最大长度的字符串
    40      */
    41     public void isSubString(){
    42         String more,less,temp;
    43         for(int j=0;j<=min;j++){
    44             for(int i=min;i>=j;i--){
    45                 if(strMax.indexOf(strMin)>0){
    46                     sameString.add(strMin);
    47                 }
    48                 if((strMax.indexOf(strMin.substring(j, i))) > 0 ){
    49                     sameString.add((strMin.substring(j, i)));       //还有题目要求找出最大公共字符串,再if里加上break即可,不加则输出所有子字符串                    
    50                 }
    51             }            
    52         }
    53         result = sameString.get(0);
    54         
    55         for(int i=1;i<sameString.size();i++){
    56             if(result.length() < sameString.get(i).length()){
    57                 result = sameString.get(i);
    58             }
    59         }
    60         System.out.println(result);
    61     }
    62 }

  • 相关阅读:
    C#中平方与n次方
    哈希算法
    C#QQ邮箱发送消息
    C#Unicode和Utf-8
    timeStamp(时间戳)
    GetHashCode
    获取XML中指定属性的值
    MySQL基础之创建和操纵表
    django基础之Django模型
    django基础之Django简介
  • 原文地址:https://www.cnblogs.com/test-researcher/p/9375136.html
Copyright © 2011-2022 走看看