欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

java實(shí)現(xiàn)求兩個(gè)字符串最長(zhǎng)公共子串的方法

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

本文實(shí)例講述了java實(shí)現(xiàn)求兩個(gè)字符串最長(zhǎng)公共子串的方法。分享給大家供大家參考,具體如下:

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

(1)一定不可以有包名;
(2)主類(lèi)名只能為Main;
(3)不可以輸出與結(jié)果無(wú)關(guān)的信息。

好了,按照以上規(guī)則,我們寫(xiě)出來(lái)的代碼如下(此代碼不是最優(yōu)的,只是用來(lái)記錄華為OJ上java代碼的書(shū)寫(xiě)規(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子串的長(zhǎng)度,從最大長(zhǎng)度開(kāi)始
   for (int i = min.length(); i >= 1; i--) {
    //遍歷長(zhǎng)度為i的min子串,從0開(kāi)始
    for (int j = 0; j <= min.length() - i; j++) { 
     target = min.substring(j, j + i); 
     //遍歷長(zhǎng)度為i的max子串,判斷是否與target子串相同,從0開(kāi)始
     for (int k = 0; k <= max.length() - i; k++) { 
      if (max.substring(k,k + i).equals(target)) { 
       return i; 
      }
     }
    }
   } 
   return 0; 
 }
}

希望本文所述對(duì)大家Java程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Java數(shù)據(jù)封裝樹(shù)形結(jié)構(gòu)代碼實(shí)例

    Java數(shù)據(jù)封裝樹(shù)形結(jié)構(gòu)代碼實(shí)例

    這篇文章主要介紹了Java數(shù)據(jù)封裝樹(shù)形結(jié)構(gòu)代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • java實(shí)現(xiàn)雙色球抽獎(jiǎng)算法

    java實(shí)現(xiàn)雙色球抽獎(jiǎng)算法

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

    深入探究Java?@MapperScan實(shí)現(xiàn)原理

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

    Java JUnit 使用及常用注解

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

    一文帶你搞懂Spring響應(yīng)式編程

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

    快速學(xué)會(huì)Dubbo的配置環(huán)境及相關(guān)配置

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

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

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

    SpringBoot超詳細(xì)講解@Enable*注解和@Import

    這篇文章主要介紹了SpringBoot?@Enable*注解和@Import,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • SpringBoot2之PUT請(qǐng)求接收不了參數(shù)的解決方案

    SpringBoot2之PUT請(qǐng)求接收不了參數(shù)的解決方案

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

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

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

最新評(píng)論