给定 s 和 t 两个字符串,当它们分别被输入到空白的文本编辑器后,如果两者相等,返回 true 。# 代表退格字符。
注意:如果对空文本输入退格字符,文本继续为空。
示例 1:
输入:s = "ab#c", t = "ad#c"
输出:true
解释:s 和 t 都会变成 "ac"。
示例 2:
输入:s = "ab##", t = "c#d#"
输出:true
解释:s 和 t 都会变成 ""。
bool backspaceCompare(char * s, char * t){ int slen = strlen(s); int tlen = strlen(t); char *s1 = (char *)malloc(sizeof(char) * (slen + 1)); char *s2 = (char *)malloc(sizeof(char) * (tlen + 1)); memset(s1, 0, sizeof(char) * slen); memset(s2, 0, sizeof(char) * tlen); int i = 0; int j = 0; while(i < slen) { if(s[i] != '#') { s1[j] = s[i]; i++; j++; }else { if(j > 0) { j--; } i++; } } s1[j] = '\0'; int m = 0; int n = 0; while(m < tlen) { if(t[m] != '#') { s2[n] = t[m]; m++; n++; }else { if(n > 0){ n--; } m++; } } s2[n] = '\0'; if(strcmp(s1, s2) == 0) { return true; } return false; }