用C++编写程序,输出两个字符串的最大公共子字符串

#include<iostream>
#include<string>
using namespace std;
int main()
{
string s_l,s_sh;
cin>>s_l>>s_sh;
if(s_l.size()<s_sh.size())
{
string s0;
s0=s_l;
s_l=s_sh;
s_sh=s0;
}

int len=s_sh.size();
string s;
int finds=0;

for(int i=len;i>0;i--)
{
for(int j=0;j<len-1;j++)
{
if(i+j<=len)
{
s=s_sh.substr(j,i);
if(s_l.find(s)!=-1)
{
finds=1;
break;
}

}
}
if(finds==1)
break;
}

cout<<s<<endl;

return 0;
}

时间: 2024-08-11 09:49:20

用C++编写程序,输出两个字符串的最大公共子字符串的相关文章

编写程序比较两个文件的不同

1 #编写一个程序比较两个文件的不同 2 3 print('请输入第一个文件名:',end='') 4 file1=input() 5 print('请输入第二个文件名:',end='') 6 file2=input() 7 count_line=0 8 count_times = [] 9 10 f1 = open('F:\\'+file1) 11 f2 = open('F:\\'+file2) 12 13 for f1_each_line in f1: 14 count_line += 1

T-SQL编写程序,将十进制数值转换为二进制字符串后输出

declare @ch nchar(10),@n int,@a int set @n=20 set @ch='' print cast(@n as varchar(5))+'的二进制为:' while @n<>0 begin set @[email protected]%2 set @[email protected]/2 set @ch=char([email protected])[email protected] end print @ch 结果为: 20的二进制为: 10100

编写程序输出杨辉三角

#include<stdio.h> int main() {    int i,j;    int a[100][100];    int row;    printf("row=");    scanf("%d",&row);    for(i=1;i<=100;i++)    {       a[i][0]=1;       a[i][i]=1;    }    for(i=2;i<=100;i++)    {       for

利用c语言编写程序输出一个数的每一位(多种方法)

第一种: #include <stdio.h> int main() { int zheng,i; int m=0; int yu[10]; int count=0; scanf("%d",&m); zheng=m; for(i=0;i<10;i++) if (zheng!=0) { yu[i]=zheng%10; zheng=zheng/10; count++; } for(i=0;i<count;i++) { printf("%d &quo

从两个字符串中找出最大公共子字符串

从两个字符串(str_1,str_2)中找出最大公共子字符串(comString)的方法为: 选取长度较短的字符串(假设str_1较短)做截取: 从字符串中截取长度为1的子字符串: 每个子字符串都在str_2中做查询,查询到则将该字符串赋予comString: 从字符串中截取长度为2的子字符串,重复3: 从字符串中截取长度为n的子字符串,重复3: 结束. 截取字符串例子: 实例: [Java] /** * create by lijiaman on 2016-09-24 * 题目:求两个字符串的

java中求几个字符串的最大公共子串 使用了比较器Compa

package com.swift; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Max_Substring_Test { public static void main(String[] args) { /* * 几个字符串的最大公共子字符串 */ String str1 = "eriousdf

50.编写程序,逆转字符串

?//1.运用到strlen函数取得输入字符串的长度 //2.输出时注意数组下标 #include<iostream> #include<string.h> using namespace std; int main() { int temp; char a[20]; cout<<"please input a string:"<<endl; cin>>a; temp=strlen(a); for(;temp>0;tem

给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果。

问题描述:给定一个正整数,编写程序计算有多少对质数的和等于输入的这个正整数,并输出结果.输入值小于1000.如,输入为10,程序应该输出结果为2.(共有两对质数的和为10,分别为(5,5),(3,7)) 附算法代码: public class PrimeNumber { //判断是否是质数 protected boolean isPrimeNumber(int num){ if(num == 2) return true;//2特殊处理 if(num < 2 || num % 2 == 0) r

两位整数相乘形成的最大回文数是 9009 = 99 &#215; 91。编写程序,求得任意输入的 n 位整数相乘形成的最大回文数。

题目内容: 两位整数相乘形成的最大回文数是 9009 = 99 × 91.编写程序,求得任意输入的 n 位整数相乘形成的最大回文数. 输入格式: 正整数 n 输出格式: n 位整数相乘形成的最大回文数 输入样例: 2 输出样例: 9009 时间限制:1000ms内存限制:32000kb def palin(num):    num_p = 0    num_t = num    while num_t != 0:        num_p = num_p * 10 + num_t % 10