Chinaunix首页 | 论坛 | 博客
  • 博客访问: 22284
  • 博文数量: 69
  • 博客积分: 1545
  • 博客等级: 上尉
  • 技术积分: 735
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-03 14:17
个人简介

fdsfdsfdsfds

文章分类

全部博文(69)

文章存档

2014年(8)

2012年(61)

我的朋友

分类: Java

2012-04-03 14:21:58


点击(此处)折叠或打开

  1. 括号配对问题
  2. import java.io.*;
  3. import java.util.*;
  4. public class MainNo2 {
  5.  public static void main(String args[]) throws Exception {
  6.   Scanner cin = new Scanner(System.in);
  7.   Stack<Character> st;
  8.   int n = cin.nextInt();
  9.   while (n != 0) {
  10.    String s = cin.next();
  11.    if (s.length() % 2 == 1)
  12.     System.out.println("No");
  13.    else {
  14.     st = new Stack<Character>();
  15.     for (int j = 0; j < s.length(); j++) {
  16.      char tmp = s.charAt(j);
  17.      if (tmp == '(' || tmp == '[')
  18.       st.push(tmp);
  19.      else {
  20.       char ct = st.peek();
  21.       if ((tmp == ')' && ct == '(')
  22.         || (tmp == ']' && ct == '[')) {
  23.        st.pop();
  24.        continue;
  25.       } else {
  26.        break;
  27.       }
  28.      }
  29.      if (st.isEmpty())
  30.       break;
  31.     }
  32.     if (st.isEmpty())
  33.      System.out.println("Yes");
  34.     else
  35.      System.out.println("No");
  36.    }
  37.    n--;
  38.   }
  39.  }
  40. }
  41. 我这代码就是不能过,总是提示RuntimeError错误
  42. 后改为如下:
  43. import java.util.Scanner;
  44. import java.util.Stack;

  45. public class Main12 {
  46.     public static void main(String[] args) {
  47.         // TODO Auto-generated method stub

  48.         Scanner scan = new Scanner(System.in);
  49.         int n = scan.nextInt();
  50.         Stack<Character> stack;
  51.         while(n != 0)
  52.         {
  53.             String s = scan.next();
  54.             if(s.length() % 2 == 1)
  55.                 System.out.println("No");
  56.             else
  57.             {
  58.                 stack = new Stack<Character>();
  59.                 for(int i = 0;i < s.length();i++)
  60.                 {
  61.                     if(stack.isEmpty())
  62.                         stack.push(s.charAt(i));
  63.                     else if((stack.peek() == '[' && s.charAt(i) == ']')
  64.                             || (stack.peek() == '(' && s.charAt(i) == ')'))
  65.                         stack.pop();
  66.                     else
  67.                         stack.push(s.charAt(i));
  68.                 }
  69.                 if(stack.isEmpty())
  70.                     System.out.println("Yes");
  71.                 else
  72.                     System.out.println("No");
  73.             }
  74.             n--;
  75.         }
  76.     }
  77. }

 就好了。

仍然没有发现问题出在哪里。。

查看内存及时间要求为:时间限制:3000 ms  |  内存限制:65535 KB

提交成功                                                                 时间         内存

hdu2Accepted 128 477 java 04-03 11:46:22


点击(此处)折叠或打开

  1. #include<iostream>
  2. #include<vector>
  3. #include<string>
  4. using namespace std;
  5. int main()
  6. {
  7. int n;
  8. cin>>n;
  9. while(n--)
  10. {
  11. vector<char> vec;
  12. string ch;
  13. vec.push_back(' ');
  14. cin>>ch;
  15. for(int i=0;i<ch.length();i++)
  16. {
  17. vec.push_back(ch[i]);
  18.    if( vec.back()-1 == *(vec.end()-2) || vec.back()-2 == *(vec.end()-2))
  19. {
  20. vec.pop_back();
  21. vec.pop_back();
  22. }
  23. }
  24. if(vec.size()==1)
  25. cout<<"Yes"<<endl;
  26. else
  27. cout<<"No"<<endl;
  28. }
  29. return 0;
  30. }
  31.  刷这个水题,是为了看c++模板,另外两名队友都是c++

阅读(137) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:hdu4刷水题 练习 c++模板

给主人留下些什么吧!~~