开发者社区> 问答> 正文

Java中的最大字符串不匹配

我最近在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

展开
收起
montos 2020-03-26 14:01:38 398 0
1 条回答
写回答
取消 提交回答
  • 在这里,您可以先反转给定字符串,然后遍历给定字符串,然后比较给定字符串和反向字符串中每个索引处的字符,如果不匹配,则增加计数器。

    检查以下代码

    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

    2020-03-26 14:02:03
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载