gpt4 book ai didi

Java 比较数组中的字符串

转载 作者:行者123 更新时间:2023-12-02 05:02:37 24 4
gpt4 key购买 nike

给定一个字符串数组,返回紧跟字母 x 的数字最多的字符串。如果两个字符串具有相同的数字,则返回索引最小的一个。

gooD({"1x","123456789","1y3534ssf","4hsd73s"}) → "1x"
gooD({"1xs3x3412fgxx6","1x+4x=5x","x5x"}) → "1x+4x=5x"
gooD({"3x2y11x3gx5x","","232","2x2xx3x3x"}) → "2x2xx3x3x"

我完全困惑为什么我的代码不起作用。为什么会这样?

public String gooD(String arr[]) {
String digits="0123456789";
int low=0;
int check=0;
String s="";
String d="";
for (int i=0; i<arr.length; i++) {
s=arr[i];
for (int j=0; j<s.length()-1; j++) {
if (digits.indexOf(s.substring(j,j+1))!=-1) {
if (s.substring(j+1,j+2).equals("x")) {
d+=s.substring(j,j+1);
}
}
}
check=d.length();
if (check<low) low=check;
d="";
}
for (int i=0; i<arr.length; i++) {
s=arr[i];
for (int j=0; j<s.length()-1; j++) {
if (digits.indexOf(s.substring(j,j+1))!=-1) {
if (s.substring(j+1,j+2).equals("x")) {
d+=s.substring(j,j+1);
}
}
}
if (d.length()==low) return d;
d="";
}
return d;
}

最佳答案

一个错误是

if (check<low) low=check;

应该是

if (check > low) low = check;

因为您正在寻找最大值。

相当简单的是:

public static String gooD(String... arr) {
int max = 0;
String best = "";
for( String s: arr ){
String t = s.replaceAll( "\\dx", "" );
int d = s.length() - t.length();
if( d > max ){
max = d;
best = s;
}
}
return best;
}

关于Java 比较数组中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28106062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com