【发布时间】:2020-05-18 13:15:54
【问题描述】:
当我手动执行迭代时,我得到了不同的值
“欢迎来到java”
当 i=5 时
我得到以下变量的值
当 i=5 时;
substring =MET
smallest="com"
largest="ome"
此时,我得到的值并没有同时验证 if 条件
我需要每次迭代中所有 3 个变量的值的帮助,以便我知道我在哪里
错了。谢谢
public class Solution {
public static String getSmallestAndLargest(String s, int k) {
String smallest = "";
String largest = "";
smallest = largest = s.substring(0, k);
for (int i=1; i<s.length()-k+1; i++) {
String substr = s.substring(i, i+k);
if (smallest.compareTo(substr) > 0)
smallest = substr;
if (largest.compareTo(substr) < 0)
largest = substr;
}
return smallest + "\n" + largest;
}
【问题讨论】:
-
有什么问题?您的预期是什么?它与您得到的结果有何不同?
-
您可以在每次迭代时只打印
substr、smallest和largest的值吗? -
我试图通过在纸上执行代码逻辑来理解这段代码
-
您的程序按字典顺序将当前子字符串(substr)与最小和最大字符串进行比较,并检查当前子字符串是否小于现有最小字符串或大于现有最大字符串。您在此程序中还有哪些其他配置?如果“smallest ,则循环中的两个 IF 条件都会失败
-
谢谢你的解决方案。
标签: java string loops conditional-statements