zoukankan      html  css  js  c++  java
  • 最长公子串

    Markdown在线编辑器 - www.MdEditor.com

    5 最长公共子串 (100分)

    给定两个字符串a、b,现有k次机会对字符串中的字符进行修改,使修改后两个字符串的最长公共子串最长。每一次修改,可以选择a、b字符串中某一个串的任意位置修改成任意字符。

    输入格式:

    第一行包括一个正整数 k。
    第二行和第三行分别输入字符串a、b。(每个串的长度不超过500)

    输出格式:

    输出为一个整数,表示修改后的两个串的最长公共子串长度。

    输入样例:

    5
    aaaaa
    bbbbb

    输出样例:

    5

    Accepted

    #include <stdio.h>
    #include <string.h> 
    int main()
    {   
        int k,i,j,len1,len2,t1,t2,sum,time,max=-1;
    	char s1[505],s2[505]; 
        scanf("%d",&k);
        scanf("%s",&s1);
        scanf("%s",&s2);
        len1=strlen(s1);
        len2=strlen(s2);
    for(i=0;i<len1;i++)
            for(j=0;j<len2;j++)
            {   
    			t1=i;
                t2=j;
                sum=0;
                time=k;
                while(t1<len1&&t2<len2)
                {   
                while(t1<len1&&t2<len2&&s1[t1]==s2[t2])
                  {
                    t1++;
                    t2++;
                    sum++;
                  }
                  if(time>0)
                  {  
    	     t1++;
             t2++;
                sum++;
                    time--;
                  }
                  else
                  break;
                 }
    	 if(sum>max)
    	 max=sum;   
            }  
        printf("%d",max);
        return 0; 
    }
    

    a[0],b[0]为头,遍寻找出这俩为头起初的最大公子串,然后a[0],b[1]...然后a[1],b[0]..以此类推,全部的sum的最大值即为最大公子串。

  • 相关阅读:
    系统手动激活
    scroll-into-view 简单demo
    css3 box-shadow 单边阴影
    js前端常用的方法
    css 箭头
    当前页面返回前一个页面时,执行前一个页面的方法
    小程序自定义组件
    vuejs2-生命周期
    Vuejs2-mock数据
    vuejs2+axios设置
  • 原文地址:https://www.cnblogs.com/czl411/p/12607506.html
Copyright © 2011-2022 走看看