liuxuhelloworld's notebook

题目链接

https://leetcode-cn.com/problems/backspace-string-compare/

解答过程

这个题目最直接的思路就是按照backspace规则,分别把两个字符串做backspace处理,然后比较得到的结果。更进一步的说,挨个遍历字符串的字符,如果是小写字母,则读进来;如果是#,则把最近一个读进来的字符删掉。

	public boolean backspaceCompare(String s, String t) {
		String backspaced1 = backspace(s);
		String backspaced2 = backspace(t);

		if (backspaced1.equals(backspaced2)) {
			return true;
		} else {
			return false;
		}
	}

	private String backspace(String s) {
		char[] chars = s.toCharArray();

		StringBuilder builder = new StringBuilder();

		for (int i = 0; i < chars.length; i++) {
			if (Character.isLowerCase(chars[i])) {
				builder.append(chars[i]);
			} else {
				if (builder.length() > 0) {
					builder.deleteCharAt(builder.length() - 1);
				}
			}
		}

		return builder.toString();
	}

做题前我知道这个题目的标签是双指针,但是实在没想到怎么用双指针,看了下官方题解才明白,有点意思,抽时间再写下双指针解法。