Java-LeetCode844. 比较含退格的字符串-timeO(n)spaceO(1)

  • 算法
    • 从后往前比较字符
    • 1.用back记录退格符'#'的个数,遍历指针对应的向前移动以此跳过退格符删除的字符
    • 2.当指针对应的字符在两个字符串中不相等或者其中一个字符串先遍历完毕时,退出返回不相等
    • 3.当两个字符串同时遍历完毕时,退出返回相等
public boolean backspaceCompare(String S, String T) {
    int i = S.length() - 1, j = T.length() - 1, back;
    while (true) {
        back = 0;
        while (i >= 0 && (back > 0 || S.charAt(i) == '#')) {
            back += (S.charAt(i) == '#' ? 1 : -1);
            i--;
        }
        back = 0;
        while (j >= 0 && (back > 0 || T.charAt(j) == '#')) {
            back += (T.charAt(j) == '#' ? 1 : -1);
            j--;
        }
        if (i >= 0 && j >= 0 && S.charAt(i) == T.charAt(j)) {
            i--;
            j--;
        } else {
            break;
        }
    }
    return i == -1 && j == -1;
}
全部评论

相关推荐

09-24 18:30
已编辑
长春工业大学 产品经理
小肥罗:HR就是好人的缩写哈哈哈哈
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务