删除最少的字符个数,使其成为回文,问长度最大的是多少。
删除最少的字符个数,使其成为回文,问长度最大的是多少。#include <stdio.h>
#include <string.h>
int isHuiWen(char* s) {
int left = 0;
int right = strlen(s) - 1;
while (left < right) {
if (s != s)
return 0;
left++;
right--;
}
return 1;
}
int max = 0;
int len(char* s, int n) {
if (!isHuiWen(s)) {
int i, j;
for (i = 0; i < n; i++) {
char temp = s; // 备份当前字符
for (j = i; j < n - 1; j++)
s = s; // 移除当前字符
s = '\0'; // 在字符串末尾添加空字符
int res = len(s, n - 1); // 递归调用
if (max < res)
max = res;
s = temp; // 恢复当前字符
if (isHuiWen(s)) {
break;
}
}
return max;
}
return n; // 如果是回文,返回字符串长度
}
int main() {
char s[] = "acbdcaa";
int n=strlen(s);
printf("%d\n", len(s,n));
return 0;
}
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]