2020春招编程考(牛客全国统一模拟)

1.添加字符
牛牛手里有一个字符串A,羊羊的手里有一个字符串B,B的长度大于等于A,所以牛牛想把A串变得和B串一样长,这样羊羊就愿意和牛牛一起玩了。

而且A的长度增加到和B串一样长的时候,对应的每一位相等的越多,羊羊就越喜欢。比如"abc"和"abd"对应相等的位数为2,为前两位。

牛牛可以在A的开头或者结尾添加任意字符,使得长度和B一样。现在问牛牛对A串添加完字符之后,不相等的位数最少有多少位?

输入描述:

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

输出描述:

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

输入例子:

abe

cabc

输出例子:

1
分析:

if(A长==B长){
一一对比
}
else{
eg1:
S1.abe                   0
   cabc
S2. abe                 2
   cabc

abe
cabchh             0

 abe                  2
cabchh

  abe                0
cabchh

   abe               0         
cabchh
  
eg2:
S1.abc            equel:0
   forabchello
S2. abc                    
   forabchello           0  
S3.  abc
   forabchello            0
S4.   abc
   forabchello            3
S5.    abc
   forabchello             0
S6.     abc
   forabchello             0
S7.      abc
   forabchello              0
S8.       abc
   forabchello              0
S9.        abc
   forabchello              0
B-(B-A+MAXequel)
}

```java
import java.util.Scanner;

public class test1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
     Scanner s1=new Scanner(System.in);
     System.out.println("请输入字符串A:");
     String str1=s1.nextLine();
     Scanner s2=new Scanner(System.in);
     System.out.println("请输入字符串B:");
     String str2=s2.nextLine();
    // System.out.println(str1);
    // System.out.println(str2);
     int num=0;
     int maxNum=0;
     int equal=0;
     if (str1.length()==str2.length()) {
		for (int i = 0; i < str1.length(); i++) {
			if(str1.charAt(i)!=str2.charAt(i)) {
				++num;
			}
		}
	} else  {
		for (int i = 0; i <= str2.length()-str1.length(); i++) {//当A,B字符右对齐时停止比较
		        int k=i;
	        	for (int j = 0; j < str1.length(); j++,++k) {
		        	if (str2.charAt(k)==str1.charAt(j)) {
				        ++equal;    
			        }
		        	
		        }
	            maxNum=max(maxNum,equal);
	        	equal=0;
	          }
		num=str2.length()-(maxNum+(str2.length()-str1.length()));

	}
     System.out.println(num);
     
     
	}

	private static int max(int num, int equal) {
		// TODO Auto-generated method stub
		if (num>=equal) {
			return num;
		}
		return equal;
	}

}

请输入字符串A:
abe
请输入字符串B:
cabc
1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值