亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java實現求兩個字符串最長公共子串的方法

 更新時間:2015年12月09日 14:21:14   作者:NW_KNIFE  
這篇文章主要介紹了java實現求兩個字符串最長公共子串的方法,是一道華為OJ上的一道題目,涉及Java針對字符串的遍歷、轉換及流程控制等技巧,需要的朋友可以參考下

本文實例講述了java實現求兩個字符串最長公共子串的方法。分享給大家供大家參考,具體如下:

這個是華為OJ上的一道題目。首先,如果我們用java寫代碼,華為OJ有以下三條規(guī)則需遵守,否則編譯無法通過或者用例無法通過,規(guī)則如下:

(1)一定不可以有包名;
(2)主類名只能為Main;
(3)不可以輸出與結果無關的信息。

好了,按照以上規(guī)則,我們寫出來的代碼如下(此代碼不是最優(yōu)的,只是用來記錄華為OJ上java代碼的書寫規(guī)則):

import java.util.Scanner;
public class Main {
 public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
  Main mainObj = new Main();
  int len = mainObj.getCommonStrLength(sc.next(),sc.next());
  System.out.println(len);
 }
 int getCommonStrLength(String str1, String str2) {
   str1 = str1.toLowerCase(); 
   str2 = str2.toLowerCase(); 
   int len1 = str1.length(); 
   int len2 = str2.length(); 
   String min = null; 
   String max = null; 
   String target = null;
   min = len1 <= len2 ? str1 : str2;
   max = len1 > len2 ? str1 : str2;
   //最外層:min子串的長度,從最大長度開始
   for (int i = min.length(); i >= 1; i--) {
    //遍歷長度為i的min子串,從0開始
    for (int j = 0; j <= min.length() - i; j++) { 
     target = min.substring(j, j + i); 
     //遍歷長度為i的max子串,判斷是否與target子串相同,從0開始
     for (int k = 0; k <= max.length() - i; k++) { 
      if (max.substring(k,k + i).equals(target)) { 
       return i; 
      }
     }
    }
   } 
   return 0; 
 }
}

希望本文所述對大家Java程序設計有所幫助。

相關文章

  • Java數據封裝樹形結構代碼實例

    Java數據封裝樹形結構代碼實例

    這篇文章主要介紹了Java數據封裝樹形結構代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • java實現雙色球抽獎算法

    java實現雙色球抽獎算法

    這篇文章主要為大家詳細介紹了java實現雙色球抽獎算法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-05-05
  • 深入探究Java?@MapperScan實現原理

    深入探究Java?@MapperScan實現原理

    之前是直接在Mapper類上面添加注解@Mapper,這種方式要求每一個mapper類都需要添加此注解,麻煩。通過使用@MapperScan可以指定要掃描的Mapper類的包的路徑,這篇文章深入探究Java?@MapperScan的實現原理
    2023-01-01
  • Java JUnit 使用及常用注解

    Java JUnit 使用及常用注解

    JUnit是Java開發(fā)中必不可少的測試框架之一,它可以幫助您編寫高質量、可維護的單元測試,本文介紹了JUnit的基本用法、常用注解、測試套件和參數化測試等內容,希望對您的測試工作有所幫助,感興趣的朋友一起看看吧
    2023-12-12
  • 一文帶你搞懂Spring響應式編程

    一文帶你搞懂Spring響應式編程

    相信響應式編程經常會在各種地方被提到。本篇就為大家從函數式編程一直到Spring?WeFlux做一次簡單的講解,并給出一些示例,希望大家可以更好的理解響應式編程
    2022-07-07
  • 快速學會Dubbo的配置環(huán)境及相關配置

    快速學會Dubbo的配置環(huán)境及相關配置

    本文主要講解Dubbo的環(huán)境與配置,文中運用大量代碼和圖片講解的非常詳細,需要學習或用到相關知識的小伙伴可以參考這篇文章
    2021-09-09
  • Java Swing組件編程之JTable表格用法實例詳解

    Java Swing組件編程之JTable表格用法實例詳解

    這篇文章主要介紹了Java Swing組件編程之JTable表格用法,結合實例形式詳細分析了Swing組件中JTable表格的常見定義與使用方法,需要的朋友可以參考下
    2017-11-11
  • SpringBoot超詳細講解@Enable*注解和@Import

    SpringBoot超詳細講解@Enable*注解和@Import

    這篇文章主要介紹了SpringBoot?@Enable*注解和@Import,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • SpringBoot2之PUT請求接收不了參數的解決方案

    SpringBoot2之PUT請求接收不了參數的解決方案

    這篇文章主要介紹了SpringBoot2之PUT請求接收不了參數的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 一招教你使用Java執(zhí)行groovy腳本的兩種方式

    一招教你使用Java執(zhí)行groovy腳本的兩種方式

    本文主要介紹了一招教你使用Java執(zhí)行groovy腳本的兩種方式,一種是通過腳本引擎ScriptEngine提供的eval(String)方法執(zhí)行腳本內容,一種是執(zhí)行groovy腳本,感興趣的可以了解一下
    2023-09-09

最新評論