2013-11-09 5 views
-1
import java.util.Stack; 

public class PalindromeTest { 

    public static void main(String[] args) { 

     String input = "test"; 
     Stack<Character> stack = new Stack<Character>(); 

     for (int i = 0; i < input.length(); i++) { 
      stack.push(input.charAt(i)); 
     } 

     String reverseInput = ""; 

     while (!stack.isEmpty()) { 
      reverseInput += stack.pop(); 
     } 

     if (input.equals(reverseInput)) 
      System.out.println("Yo! that is a palindrome."); 
     else 
      System.out.println("No! that isn't a palindrome."); 

    } 
} 

В приведенной выше программе есть цель: reverseInput + = stack.pop();
Что происходит, когда вы назначаете это. I путаете с этой линией, может ли кто-нибудь объяснить?Хотите знать использование

ответ

0

Он просто удаляет самый верхний символ стека и присоединяет его к String reverseInput, используя обычную конкатенацию строк Java. Поскольку он находится внутри этого цикла, он будет удалять символы до тех пор, пока стек не станет пустым. Это то, что фактически меняет входную строку (первый символ оригинала является самым нижним в стеке, поэтому он является последним символом инвертированной строки).

See java.util.Stack JavaDoc here.

Смежные вопросы