当前位置: 首页 > 知识库问答 >
问题:

为什么在for循环中执行{i

顾琛
2023-03-14
String smallest = s.substring(0, k);  // Assume
String largest = s.substring(0, k);
String temp;
for(int i = 0; i < s.length() - k + 1;i++)<<<==== please Explain logic in this line
{
    temp = s.substring(i, i + k);
    if(smallest.compareTo(temp) > 0) smallest = temp;
    if(largest.compareTo(temp) < 0) largest = temp;
}
return smallest + "\n" + largest;

}

链接:https://www.hackerrank.com/challenges/java-string-compare/problem

共有1个答案

锺超英
2023-03-14

让我们从头开始

假设我们有字符串“abcd”,所以我们将最小的和最大的从索引0切到2-它的子字符串“ab”

然后在循环中i从0变为3(4-2+1->3)--顺便说一下,它可以从1开始,因为我们已经处理了“ab”;

下一次迭代:i++->i=1:将第二个子字符串从索引1剪切到1+2->3->“BC”--它比“AB”大,所以我们存储最大=“BC”;

下一次迭代:i++->i=2;检测从索引2到2的第3个子字符串+2->4->“cd”-它比“bc”大,所以我们存储“cd”

I++->3,离开循环,否则我们将尝试从索引3到索引5获得一个子字符串,这将导致我两天前提到的异常。

 类似资料:
  • 我对python中双for循环的使用感到困惑,这是我的代码: 输出如下: 它只对外循环的第一个值执行内循环,为什么会发生这种情况?我怎样才能让它在第一个和第二个变量的所有组合上循环?

  • 问题内容: 我只是发现我认为PLSQL与Oracle中的SQL有点意外的行为。 如果我在SQLDeveloper上运行此查询,则会得到5个结果: 但是,如果我在SQLDeveloper中运行以下语句: 变量 w_counter 以值1(怪异)结束 但最奇怪的部分是,如果我将查询封装在子查询中…… 该 w_counter 变量完成与价值5 … 你对此有什么要说的? 我正在使用Oracle 9.2i

  • 本文向大家介绍C#中for循环、while循环循环执行的方法,包括了C#中for循环、while循环循环执行的方法的使用技巧和注意事项,需要的朋友参考一下 先给大家介绍下C#中的循环执行for循环 在这一节练习中,我们向大家介绍一下C#中的另一种重要的循环语句,for循环。 表达式1:一般为赋值表达式,给控制变量赋初值; 表达式2:逻辑表达式,循环控制条件;当条件为真时,循环执行循环体中的语句。

  • 问题内容: 我一直在尝试并行化以下脚本,特别是for循环。我怎样才能做到这一点? 问题答案: 更换 与

  • 在我的程序中,我发现当为时,循环无法正确退出。它看起来像整数溢出,远远大于10,循环不会停止。请告诉我发生了什么,以及如何在大型项目中避免这个错误。 代码链接