队列和堆栈

时间:2011-10-20 23:33:24

标签: java

我在编写程序时遇到问题,该程序确定字符串是否是一个从用户获取输入字符串的回文,同时跳过空白字符和标点符号,并忽略大小写中的差异,将每个字符存储在堆栈和队列中。我已经确定它是否是回文。我遇到麻烦的部分是在队列和堆栈中对它进行排序。以下就是我现在所拥有的。

import java.util.Scanner;

public class Pali
{

    static int length;
    static String st;
    static ListStack stack = new ListStack();
    static ListQueue lq = new ListQueue();
    static Scanner input = new Scanner(System.in);


  public static void main (String[] args)
 {
     text();
        String s = null;
     createStack(s);
        String q = null;
     createQueue(q);
  }


    public static void text()
    {

  String st, _n = "y";
  int left, right;
  Scanner scan = new Scanner (System.in);

  while (_n.equalsIgnoreCase("y")) 
  {
     System.out.println ("Enter a potential palindrome:");
     st = scan.nextLine();



     left = 0;
     right = st.length() - 1;

     while (st.charAt(left) == st.charAt(right) && left < right)
     {
        left++;
        right--;
     }

     System.out.println();

     if (left < right)
        System.out.println ("That string is NOT a palindrome.");
     else
        System.out.println ("That string IS a palindrome.");

     System.out.println();
     System.out.print ("Test another palindrome (y/n)? ");
     _n = scan.nextLine();
    }

    }
    public static void createStack(String s)
    {
        for (int i = 0; i < s.length(); i++)
        {
            stack.push(s.charAt(i));

    }

    }
    public static void createQueue(String q)
    {
        for (int i = 0; i < q.length(); i++)
        {
            lq.enqueue(q.charAt(i));
        }
     }

    public static void palindrome(ListQueue l, ListStack m)
    {
       for(int i = 0; i < m.size();i++)
       {


       }



   }
}

1 个答案:

答案 0 :(得分:0)

您需要使用堆栈和队列吗?或者你只是这样做,因为有人建议你? 在你当前的代码中,你实际上根本没有使用堆栈或队列,你只是制作它们并用空字符串填充它们。

你的原始代码位操纵字符串并不是那么糟糕,但是尝试添加一个格式化字符串的步骤,所以你摆脱了大小写,摆脱其他任何不是字母的东西,摆脱白色空间等让这一步工作,然后尝试检查它是否是回文。

不,我不会告诉你该怎么做,因为我最近不得不做同样的事情,我知道找到它是多么容易......