public class LongestAlphabetDistance {
public int longDistance(String str, String a) {
str = "this is my greatest achivement in the world";
a = "i";
int count =0;
// code logic for longest differance
return count;
}
}
我想得到"这是我在世界上最伟大的成就"首先是距离b / w
a = i
,最后我喜欢t=1,h=2,i=3,s=4,
空格不应该算上i=5,s=6,m=7,y=8,g=9
,就像上一个i
"" i=27
所以首先i=3
最后i=27
所以最长距离b/w
24请为此编写代码
答案 0 :(得分:1)
您可以使用indexOf
获取char的第一个索引,使用lastIndexOf
获取最后一个索引,例如:
opar <- par() # to reset later
par(xpd=TRUE)
plot(iris.rpart)
text(iris.rpart, use.n = T)
par <- opar # restore old setting
注意这两种方法String str = "this is my greatest achivement in the world";
String a = "i";
int indexFirst = str.replace(" ", "").indexOf(a);//this return 2
int indexLast = str.replace(" ", "").lastIndexOf(a);//this return 26
int dist = indexLast - indexFirst; //this return 24
和indexOf
从0开始,因为你得到2和24而不是3和27
答案 1 :(得分:1)
public class LongestAlphabetDistance {
public int longDistance(String str, String a) {
str = "this is my greatest achivement in the world";
a = "i";
str = str.replaceAll("\\s", "");
char[] chArray = str.toCharArray();
ArrayList<Integer> inArray = new ArrayList<>();
for(int i =0;i<chArray.length;i++) {
if(chArray[i] == a.charAt(0) ) {
inArray.add(i+1);
}
}
return inArray.get(inArray.size()-1)-inArray.get(0); // 24
}
}
答案 2 :(得分:0)
拼写正确,距离为25:
public static void main(String[] args) {
String str = "this is my greatest achievement in the world".replaceAll(" ", "");
String a = "i";
int firstI = str.indexOf(a);
int lastI = str.lastIndexOf(a);
System.out.printf("%s%n%s%d%n%s%d%n%s%d", str, "First i: ", firstI, "Last i: ", lastI, "Distance: ", (lastI - firstI));
}
<强>输出:
thisismygreatestachievementintheworld
First i: 2
Last i: 27
Distance: 25