【问题标题】:Java stack size does not return the number of items in the stackJava堆栈大小不返回堆栈中的项目数
【发布时间】:2021-03-05 03:16:16
【问题描述】:

我是一般数据结构和编程的新手,我通过实现字符串反向器来学习堆栈的概念。因为我想使用堆栈大小作为计数器来弹出堆栈中的所有项目,所以我注意到堆栈大小不会返回堆栈中的项目数。示例:

    public String reverse(String string) {
    StringBuffer stringBuffer = new StringBuffer();
    //Use a stack to reverse this string.As a stack is a LIFO collection, it goes by last in first out.
   
    Stack<Character> characters = new Stack<>();
    char[] characterArray = string.toCharArray();
    for(char ch : characterArray) {
        characters.push(ch);
    }
    for(int i=0; i < characterArray.length; i++) {
        stringBuffer.append(characters.pop());
    }
    return stringBuffer.toString();
  

}

输入“helloworldz”按预期返回“zdlrowolleh”。但是当使用堆栈大小作为计数器时......

    public String reverse(String string) {
    StringBuffer stringBuffer = new StringBuffer();
    Stack<Character> characters = new Stack<>();
    char[] characterArray = string.toCharArray();
    for(char ch : characterArray) {
        characters.push(ch);
    }
    for(int i=0; i < characters.size(); i++) {
        stringBuffer.append(characters.pop());
    }
    return stringBuffer.toString();

}

它返回“zdlrow”,

表示堆栈大小没有返回堆栈中的项目数。 我错过了什么重要的东西吗?任何帮助将不胜感激。

【问题讨论】:

  • 如果其中一个答案解决了您的问题,您可以通过将其标记为已接受来帮助社区(单击答案左侧的大复选标记 ✓)。接受的答案有助于未来的访问者自信地使用该解决方案。 注意:您只能接受一个问题的答案。但是,一旦您拥有超过 15 个声望点,您就可以根据需要对任意数量的答案进行投票。

标签: java data-structures stack size


【解决方案1】:

堆栈的大小随着每个pop 操作而减少1,因此在下面的代码块中,

for(int i=0; i < characters.size(); i++) {
    stringBuffer.append(characters.pop());
}

与下面的代码块相比,循环将只执行一半的次数

for(int i=0; i < characterArray.length; i++) {
    stringBuffer.append(characters.pop());
}

【讨论】:

    【解决方案2】:

    如果您想根据characters 堆栈本身的信息进行循环,正确的选择是:

        while (!characters.isEmpty()) {
            stringBuffer.append(characters.pop());
        }
    

    【讨论】:

      猜你喜欢
      • 2014-08-02
      • 2023-04-10
      • 1970-01-01
      • 2018-01-29
      • 2012-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-24
      相关资源
      最近更新 更多