我最近在 Codehub 上遇到了一个问题,但无法解决这个查询。谁能帮我解决这个问题吗?
给定一个长度为 N 的字符串 S。您可以选择并反转 S 中任意长度的任何子字符串。您可以多次执行此操作。
通过执行操作确定最大不匹配数。
不匹配(S)定义为S和反向(S)中字符不同的对应位置的数量。例如:S = abab,reverse(S) = baba。不匹配数 = 4。S= abca。不匹配的数量 = 2。
伪代码:
static int solve( String S, int n)
{
//To do
}
如果代码完成后有人能够解释如何更容易地解释并解决这个问题,将会很有帮助。
最佳答案
我最近在一项能力测试中遇到了同样的问题,我不知道上述解决方案,但我在 python 中的下面的实现适用于上述问题
import itertools
def maximum_mismatches(s,n):
if len(set(s)) == 1:
return 0
maxc = 0
for str_c in set(itertools.permutations(s,n)):
rev_str = str_c[::-1]
counter = 0
for i in range(n):
if str_c[i] != rev_str[i]:
counter += 1
if maxc < counter:
maxc = counter
return maxc
我已经测试了多个测试用例,它正在工作
关于java - Java 中最大字符串不匹配数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60680525/