我最近在codehub中遇到一个问题,但无法解决此查询。谁能帮我解决这个问题?
将为您提供长度为N的字符串S。您可以选择和反转任意长度的S的任何子字符串。您可以多次执行此操作。
通过执行操作确定最大不匹配数。
不匹配(S)定义为字符中S和反向(S)不同的相应位置的数量。例如:S = abab,reverse(S)= baba。不匹配数=4。S =绝对值。不匹配数= 2。
伪代码:
static int solve( String S, int n)
{
//To do
}
如果有人可以在代码完成后进行解释,那么如何将其更容易地解释并加以解决将很有帮助。
问题来源:Stack Overflow
在这里,您可以先反转给定字符串,然后遍历给定字符串,然后比较给定字符串和反向字符串中每个索引处的字符,如果不匹配,则增加计数器。
检查以下代码
public static void main(String args[])throws IOException {
String s = "abab";
System.out.println(solve(s,s.length()));
}
static int solve( String s, int n)
{
//this can also be used to reverse string
//String reversed = new StringBuilder(s).reverse().toString();
String revStr = Stream.of(s)
.map(word->new StringBuilder(word).reverse())
.collect(Collectors.joining(" "));
int counter = 0;
for(int loop=0; loop < n; loop++){
if(s.charAt(loop)!=revStr.charAt(loop)){
++counter;
}
}
return counter;
}
回答来源:Stack Overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。