求任意兩個字串的最大相同子串
c語言
# include<stdio.h>
#include<string.h>
int main(){
char a[100],b[100];
printf("s1=");
scanf("%s",a);
printf("s2=");
scanf("%s",b);
int i,j,k,maxlen=1,m;
for(i=0;i<strlen(a);i++){//i是a陣列下標,j是b陣列下標
for(j=0;j<strlen(b);j++){
if(a[i]==b[j]){
for(k=1;a[i+k]==b[j+k];k++);//k是相同串長度
maxlen=k;//記錄最大子串長度
m=i;//記錄開始下標
}
}
}
}
int n=m;
for(n=m;n<m+maxlen;n++)//注意maxlen保留的才是最大長度
printf("%c",a[n]);
printf("\n");
return 0;
}
相關推薦
《程式設計師程式碼面試指南》求兩個字串最長公共子串
/** * 題目: * 給定兩個字串 str1 和 str2,返回兩個字串的最長公共子串。 *舉例: * str1 = "1AB2345CD",str2 = "12345EF",返回"2345"。 */ /** * 解答: * 經典動態規劃的方法可以做到時間複
java實現兩個字串最大公共子字串
/** * @author weichen CHEN created on 2018/4/20 * @version 2018/4/20 weichen CHEN */ public class Test { public static void main
求兩個字串最長公共子串(動態規劃)
code如下: //Longest common sequence, dynamic programming method void FindLCS(char *str1, char *str2) { if(str1 == NULL || str2 == NULL)
LCS兩個字串最長公共子串
LCS問題就是求兩個字串最長公共子串的問題。解法就是用一個矩陣來記錄兩個字串中所有位置的兩個字元之間的匹配情況,若是匹配則為1,否則為0。然後求出對角線最長的1序列,其對應的位置就是最長匹配子串的位置。 下面是字串21232523311324和字串31212322344
求任意兩個字串的最大相同子串
c語言# include<stdio.h> #include<string.h> int main(){ char a[100],b[100]; printf("s1="); scanf("%s",a); printf("s2="); s
用javascript求兩個字串最大的相同的子串
思路: 1.找出兩個字串的最大和最小字串(根據長度)。 2.從最小的字串中先取該字串的長度的子串,判斷大的字串中是否包含該子串,不包含將長度減1,從小的字串中取該長度的子串再去判斷,如此反覆。 &
編寫程式,獲取兩個字串中最大相同子串
private void test() { String a = "Valaienie"; String b = "Maierginle"; String max = a.length() > b.length() ? a : b; String min =
求一個字串的字首與另一個字串的字尾的最大相同子串
求字串ptr的字首與str的字尾的最大相同子串,若不存在,輸出0。 樣例輸入 mike aniom kiava dvakia dasds fdsgh 樣例輸出 m 1 kia 3 0 分析: 先求字串ptr的next陣列,然後使用KMP演算法求ptr的字首與str字尾的最
String包裝類應用之 獲取兩字串的最大相同子串
exa: 1.獲取兩個字串中最大相同子串。比如: str1 = “abcwerthelloyuiodef”; str2 = “cvhellobnm” 提示:將短的那個串進行長度依次遞增的子串與
兩字串尋找最大相同子串
1.s1.contains(sub) 存在返回true2.把較短字串先與長的contains,存在則輸出;不存在則減一再containspublic class StringTest_3 {public static void main(String[] args) {St
核心API的使用(獲取兩個字符串的最大相同子串)
ins for system bst span sam sub string 三目運算 /** * 獲取兩個字符串的最大相同子串。 例:abegad acegab */public class TheSameString { public static void main(
c語言查詢兩個字串中的公共子串
程式碼如下:#include <stdio.h> #include <string.h> #include <stdlib.h> void getCommon(ch
java實現字串匹配問題之求兩個字串的最大公共子串
轉載請註明出處:http://blog.csdn.net/xiaojimanman/article/details/38924981 最近在專案工作中有一個關於文字對比的需求,經過這段時間的學習,總結了這篇部落格內容:求兩個字串的最大公共子串。 演算法思想:基於圖計算兩字串
HDU 1874 Dijkstra演算法 求任意兩個點之間的最短距離
題意: 某省自從實行了很多年的暢通工程計劃後,終於修建了很多路。不過路多了也不好,每次要從一個城鎮到另一個城鎮時,都有許多種道路方案可以選擇,而某些方案要比另一些方案行走的距離要短很多。這讓行人很困擾。 #include&l
C程式設計——程式設計實現查詢兩個字串的最大公共子串2.0
1、 題目:程式設計實現查詢兩個字串的最大公共子串 示例:“aocdfe"和"pmcdfa"最大公共子串為"cdf” 注:最大公共子串有不止一個時,只輸出第一個最大子串 利用斐波那契數列數的思想 **2、**程式 #include <stdio.h> #include &
C程式設計——程式設計實現查詢兩個字串的最大公共子串1.0
1、 題目:程式設計實現查詢兩個字串的最大公共子串 示例:“aocdfe"和"pmcdfa"最大公共子串為"cdf” 注:最大公共子串有不止一個時,只輸出第一個最大子串 **2、**程式 #include <stdio.h> #include <string.h>
程式設計實現查詢兩個字串的最大公共子串
#include <stdio.h> #include <string.h> //程式設計實現查詢兩個字串的最大公共子串 //示例:"aocdfe"和"pmcdfa"最大公共子串為"cdf" void MyPub(char *str1, char *str2) {
使用C語言編寫程式,求任意兩個整數的較大值
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #define max(a,b)((a>b?a:b)) int main() {
輸出兩字串最大相同部分——C面試題
面試題,是紙上寫的,發現了些錯誤,回來改進了下。寫紙上和寫計算機裡並編譯成功完全是兩個效果。 開始沒太多字串操作,很繁瑣、難點也多,後逐漸改進。 典型問題1: sizeof()侷限於棧陣列 char a[] = "asd213123123"; 形式,並且這種不能用'\0'
Java找出兩個字串中最大的子串
[java] view plain copy print?// 找一個字串的最大子串 publicstaticvoid main(String[] args) { String s1 = ”qwerabcdtyuiop”; String s2 = ”xc