java實現(xiàn)求兩個字符串最長公共子串的方法
本文實例講述了java實現(xiàn)求兩個字符串最長公共子串的方法。分享給大家供大家參考,具體如下:
這個是華為OJ上的一道題目。首先,如果我們用java寫代碼,華為OJ有以下三條規(guī)則需遵守,否則編譯無法通過或者用例無法通過,規(guī)則如下:
(1)一定不可以有包名;
(2)主類名只能為Main;
(3)不可以輸出與結(jié)果無關(guān)的信息。
好了,按照以上規(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程序設(shè)計有所幫助。
- Java動態(tài)規(guī)劃之編輯距離問題示例代碼
- Java動態(tài)規(guī)劃之硬幣找零問題實現(xiàn)代碼
- Java矩陣連乘問題(動態(tài)規(guī)劃)算法實例分析
- Java算法之最長公共子序列問題(LCS)實例分析
- Java最長公共子序列示例源碼
- Java字符串中刪除指定子字符串的方法簡介
- Java的字符串中對子字符串的查找方法總結(jié)
- java查找字符串中的包含子字符串的個數(shù)實現(xiàn)代碼
- java實現(xiàn)統(tǒng)計字符串中字符及子字符串個數(shù)的方法示例
- Java中獲取子字符串的幾種方法示例
- Java基于動態(tài)規(guī)劃法實現(xiàn)求最長公共子序列及最長公共子字符串示例
相關(guān)文章
SpringBoot如何實現(xiàn)各種參數(shù)校驗
文章詳細介紹了SpringValidation的使用,包括簡單使用、requestBody參數(shù)校驗、requestParam/PathVariable參數(shù)校驗、統(tǒng)一異常處理、分組校驗、嵌套校驗、集合校驗、自定義校驗、編程式校驗、快速失敗、@Valid和@Validated的區(qū)別以及實現(xiàn)原理2024-12-12
Spring?Cloud?Alibaba使用Nacos作為注冊中心和配置中心
這篇文章主要為大家介紹了Spring?Cloud?Alibaba使用Nacos作為注冊中心和配置中心的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06
Java中利用Alibaba開源技術(shù)EasyExcel來操作Excel表的示例代碼
這篇文章主要介紹了Java中利用Alibaba開源技術(shù)EasyExcel來操作Excel表的示例代碼,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-03-03

