给定字符串A、B和正整数V, 字符串A和B的长度相等,计算A中满足如下条件的最大连续子串的长度:
- 该连续子串在A和B中的位置和长度相同。
- 该连续子串|A[i] - B[i]|(两个字母ASCII码之差的绝对值)之和小于等于V
输入:
第一行输入字符串A,仅包含小写字母,1 <= A.length N= 1000
第二行输入字符串B,仅包含小写字母,1 <= B.length N= 1000
第三行输入正整数V,0 <= V <= 10000
输出:
字符串最大连续子串的长度,要求该子串|A[i] - B[i]|之和小于等于V
样例输入:
xxcdefg
cdefghi
5
样例输出:
2
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define LEN 1001
int main()
{
char arr_a[LEN] = {0};
char arr_b[LEN] = {0};
unsigned int len = 0;
unsigned int i, j;
unsigned int sum_v, sum = 0;
scanf("%s", arr_a);
scanf("%s", arr_b);
scanf("%d", &sum_v);
printf("arr_a:%s\n", arr_a);
printf("arr_b:%s\n", arr_b);
printf("sum_v:%d\n", sum_v);
for (i = 0; i < strlen(arr_a); i++) {
sum += abs(arr_a[i] - arr_b[i]);
printf("loop:%d,sum:%d\n", i, sum);
if (sum <= sum_v) {
len++;
printf("len:%d\n", len);
} else {
sum = 0;
if (len > 0)
break;
}
}
printf("len:%d\n", len);
return 0;
}