• 4、牛牛手里有一个字符串A,羊羊的手里有一个字符串B,B的长度大于等于A,所以牛牛想把A串变得和B串一样长,这样羊羊就愿意和牛牛一起玩了。 而且A的长度增加到和B串一样长的时候,对应的每一位相等的越多,羊羊就越喜欢。比如"abc"和"abd"对应相等的位数为2,为前两位。 牛牛可以在A的开头或者结尾添加任意字符,使得长度和B一样。现在问牛牛对A串添加完字符之后,不相等的位数最少有多少


    牛牛手里有一个字符串A,羊羊的手里有一个字符串B,B的长度大于等于A,所以牛牛想把A串变得和B串一样长,这样羊羊就愿意和牛牛一起玩了。
    而且A的长度增加到和B串一样长的时候,对应的每一位相等的越多,羊羊就越喜欢。比如"abc"和"abd"对应相等的位数为2,为前两位。
    牛牛可以在A的开头或者结尾添加任意字符,使得长度和B一样。现在问牛牛对A串添加完字符之后,不相等的位数最少有多少位? 

    输入描述:

    第一行为字符串A,第二行为字符串B,A的场地小于等于B的长度,B的长度小于等于50.字符均为小写字母。

    输出描述:

    输出一个整数表示A串添加完字符之后,不相等的位数最少有多少位?

    输入例子:

    abe
    cabc

    输出例子:

    1
     1 #include <stdio.h>
     2 #include<stdlib.h>
     3 #include <string.h>
     4 #define n 50
     5 int max(int a, int b){
     6     if(a>=b)
     7         return a;
     8     else return b;
     9 }
    10 int main()
    11 {
    12     char a[n];
    13     char b[n];
    14     int asize=0;int bsize=0;
    15     for(int i=0;a[i-1]!='
    ';i++){
    16         scanf("%c",&a[i]);
    17         asize++;
    18     }
    19     for(int i=0;b[i-1]!='
    ';i++){
    20         scanf("%c",&b[i]);
    21         bsize++;
    22     }    
    23     while(asize!=0&&bsize!=0)
    24     {
    25         int equal = 0;
    26  
    27         int result = 0;
    28  
    29         int count = 0;
    30         int n1 = asize-1;
    31         int n2 = bsize-1;
    32          
    33         if(n1 == n2)
    34         {
    35             for(int i=0;i<n1;i++)
    36             {
    37                 if(a[i] != b[i])
    38                 {
    39                     count++;
    40                 }
    41             }
    42             printf("%d",count);
    43             break;
    44         }
    45         else//蛮力比较 
    46         {
    47             for(int i=0;i<=n2-n1;i++)
    48             {
    49                 int k = i;
    50                 for(int j=0;j<n1;j++)
    51                 {
    52                     
    53                     if(b[k] == a[j])
    54                     {
    55                       
    56                         equal++;
    57                     }
    58                     k++;
    59                 }
    60                 result = max(result,equal);//有几位数相同 
    61                 equal=0;
    62             }
    63             count = n2 - (result + (n2 - n1));//(n2-n1):可以补成相同的几位  (result + (n2 - n1):一共可以相同的有几位 
    64             printf("%d",count);
    65             break;
    66  
    67  
    68         }
    69     }
    70 }

     

    
    
  • 相关阅读:
    电脑端口被占用
    listview初始化后仍为空
    java.lang.NoClassDefFoundError
    int型转换成byte型
    Listview列表上显示按钮
    6.手动实现信号于槽的连接过程
    3.22TextEdit设置html以及pushButton暂停与播放实现
    计算器
    QT学习之QMediaPlayer
    03.27随机数产生、Lcd使用,文本框追加、
  • 原文地址:https://www.cnblogs.com/olivegyr/p/6978675.html
Copyright © 2020-2023  润新知