https://www.lintcode.com/problem/input-stream/description
给定两个字符串,包含小写字母和"<",小于号相当于退格键。问按照这两个字符串的方式做输入,最终得到的结果是否相等。相等则返回"YES"否则返回"NO"。
类似于栈来做即可。代码如下:
public class Solution { /** * @param inputA: Input stream A * @param inputB: Input stream B * @return: The answer */ public String inputStream(String inputA, String inputB) { // Write your code here return parse(inputA).equals(parse(inputB)) ? "YES" : "NO"; } private String parse(String input) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < input.length(); i++) { char ch = input.charAt(i); if (ch != '<') { sb.append(ch); } else { // 这里要判断一下sb还有字符可以删 if (sb.length() >= 1) { sb.setLength(sb.length() - 1); } } } return sb.toString(); } }时空复杂度 O ( l A + l B ) O(l_A+l_B) O(lA+lB)。