*/
bool backspaceCompare(string s, string t) {
stack s1,s2;
for(char str:s){
if(str != ‘#’){
s1.push(str);
}else if(!s1.empty()){
s1.pop();
}
}
for(char str:t){
if(str != ‘#’){
s2.push(str);
}else if(!s2.empty()){
s2.pop();
}
}
return s1 == s2;
}
};
(3):方法二
class Solution {
public:
/**
思路:
1.利用栈 我们将字符串中的单个元素都入栈 当遇到’#'的时候将将栈顶元素弹出
*/
bool backspaceCompare(string s, string t) {
return text(s) == text(t);
}
string text (string str){
string s;
for(int i = 0; i < str.size(); i++){
if(str[i] != ‘#’)
s.push_back(str[i]);
else if(!s.empty())
s.pop_back();
}
return s;
}
};
(1):思路
1.我们在遇到’#‘的时候 是删除其前面的元素,而与后面的元素无关,那么我们可以逆序遍历
字符串,当遇到’#‘的时候,指针就往前走,然后当kipNum为0的时候证明我们已经成功移 除一个字符(其实是模拟)
2.这里设置skipNum,tkipNUm两个变量,来记录两个字符串中的’#‘的数量,来模拟消除的过程
那么在这里双指针主要是用在来比较单个字符,就是我们遍历到最后,我们是否可以得到相同
的字符,或者是同时遍历完成,那么也会说明去除’#'前面的字符后的字符串依然相等
(2):上码
class Solution {
public:
/**
思路:
1.我们在遇到’#'的时候 是删除其前面的元素,而与后面的元素无关,那么我们可以逆序遍历
字符串,当遇到’#'的时候,指针就往前走,然后当kipNum为0的时候证明我们已经成功移 除一个字符(其实是模拟)
2.这里设置skipNum,tkipNUm两个变量,来记录两个字符串中的’#'的数量,来模拟消除的过程
那么在这里双指针主要是用在来比较单个字符,就是我们遍历到最后,我们是否可以得到相同
的字符,或者是同时遍历完成,那么也会说明去除’#'前面的字符后的字符串依然相等
*/
bool backspaceCompare(string s, string t) {
int sKipNum = 0;//记录s中’#‘的数量 主要是为了模拟去除’#'前面的字符
int tkipNum = 0;//记录t中’#'的数量
//双指针
int i = s.size() - 1;//逆序
int j = t.size() - 1;
while(1){
//从后往前,消除s中的#
while(i >= 0){
if(s[i] == ‘#’)//当遇到#的时候这个while循环就有意义了,直到skipnum == 0的时候才跳出这个循环,表示模拟删除了 # 前面的字符
sKipNum++;
else{
if(sKipNum > 0)
sKipNum–;
else
break;
}
i–;//往前走一个字符
}
while(j >= 0){
if(t[j] == ‘#’)
tkipNum++;
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Java工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
升的进阶课程,基本涵盖了95%以上Java开发知识点,不论你是刚入门Java开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!**
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!