zxiaofan 2015-09-29 917浏览量
1、如果收到一个‘#’,删掉一个已经收到的字符,不包括‘#’;
2、如果收到一个‘@’,把收到的一整行删掉(‘#’和‘@’都是不可见字符)
输出:
每组数据输出一行经过行编辑器编辑过的字符串。
样例输入
3 whli##ilr#e(s#*s) outcha@putchar(*s=#++) returnWA##A!!##C
样例输出
while(*s) putchar(*s++) returnAC
算法思想:
队列存字符,遇到‘#’或‘@’则进行相应的操作
注意:
判断读取‘#’且队列为空的特殊情况,否则会编译失败。
源代码:
import java.util.Scanner; import java.util.Vector; public class LineCompile { public static void main(String args[]) { Scanner reader = new Scanner(System.in); int n = reader.nextInt(); String[] str = new String[n]; for (int i = 0; i < n; i++) { Scanner reader1 = new Scanner(System.in); str[i] = reader1.nextLine(); } for (String string : str) { // System.out.println(string); Vector st = new Vector(); for (int i = 0; i < string.length(); i++) { char ch = string.charAt(i); if (ch == '#') { while (!st.isEmpty()) { st.removeElement(st.lastElement()); } } else if (ch == '@') { st.clear(); } else { st.add(ch); } } String temp = ""; while (!st.isEmpty()) { temp += st.firstElement(); st.removeElement(st.firstElement()); } System.out.println(temp); } } }
如果发现了什么bug或者有更好的方法,欢迎交流。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
了解行业+人工智能最先进的技术和实践,参与行业+人工智能实践项目