某程序设计语言中的pair是如下方式定义:type:=int|pair<type,type>.
2013-09-23 20:58
375 查看
输入int个数和字符串
请添加"<"和“>"将字符串匹配
如果不能匹配,请输出:"Error occured"
例如:
输入:
3
pair pair int int int
输出:
pair<pair<int,int>,int>
输入:
1
pair int
输出:
Error occured
输入:
5
pair pair int pair int pair int int int
输出:
pair<pair<int,pair<int,pair<int,int>>>,int>
请添加"<"和“>"将字符串匹配
如果不能匹配,请输出:"Error occured"
例如:
输入:
3
pair pair int int int
输出:
pair<pair<int,int>,int>
输入:
1
pair int
输出:
Error occured
输入:
5
pair pair int pair int pair int int int
输出:
pair<pair<int,pair<int,pair<int,int>>>,int>
import java.util.Scanner; import java.util.Stack; public class Main2 { public static void main(String[] args) { Scanner input = new Scanner(System.in); int p = 0;// pair的个数 int num = Integer.parseInt(input.nextLine().toString().trim()); String str = input.nextLine(); String[] arr = str.split(" "); for (int i = 0; i < arr.length; i++) if (arr[i].equals("pair")) p++; if (p != num - 1 || p + num != arr.length) System.out.println("Error occured"); else System.out.println(match(arr)); } public static String match(String[] arr) { String str = ""; Stack<String> stack = new Stack<String>(); for (int i = 0; i < arr.length; i++) { if (arr[i].equals("pair")) { stack.push("pair"); str += "pair<"; } else if (stack.peek().equals("pair")) { stack.push("int"); str += "int,"; } else { stack.push("int"); str += "int"; stack.pop();// pop "int" stack.pop();// pop "int" stack.pop();// pop "pair" str += ">"; while (!stack.empty() && stack.peek().equals("int")) { str += ">"; stack.pop();// pop "int" stack.pop();// pop "pair" } if (i != arr.length - 1) { str += ","; stack.push("int"); } } } if (!stack.empty()) return "Error occured"; return str; } }
相关文章推荐
- K&R的名著:<C程序设计语言>小程序总结6
- C++中的&nbsp;pair&lt;map&lt;string,&nbsp;int&gt;::i…
- <<c程序设计语言>>第三章 程序控制流
- <<c程序设计语言>>-4- 函数与程序结构
- K&R的名著:<C程序设计语言>小程序总结4
- Qt error ------ no matching function for call to QObject::connect(QSpinBox*&, <unresolved overloaded function type>, QSlider*&, void (QAbstractSlider::*)(int))
- pair<int, int> set<pair<int, int>>
- K&R的名著:<C程序设计语言>小程序总结2
- K&R的名著:<C程序设计语言>小程序总结1
- jsp <input type="file"> 清空value值的一种方式
- [C++]pair<int,int>与make_pair<int,int>
- K&R的名著:<C程序设计语言>自引用结构
- K&R的名著:<C程序设计语言>小程序总结p117统计关键字
- <input type="file">定义样式并获取上传文件路径及指定文件类型
- <input type = "submit"> 提交方式和用js的form.submit()有什么区别?
- K&R的名著:<C程序设计语言>小程序总结3
- K&R的名著:<C程序设计语言>小程序总结7指针
- Defining <uniqueKey> as a "long" or "int" type throws an error on startup
- std::vector<std::string>::size_type和 int的区别
- vector<int>::size_type 解释