台州智能模板建站,深圳免费模板建站,杭州婚恋网站建设,视频广告制作一)删除字符串中所有相邻字符的重复项 1047. 删除字符串中的所有相邻重复项 - 力扣#xff08;LeetCode#xff09; 算法原理:栈结构模拟#xff0c;只是需要遍历所有字符串中的字符#xff0c;一次存放到栈里面即可#xff0c;也是可以使用数组来模拟一个栈结构的: class… 一)删除字符串中所有相邻字符的重复项 1047. 删除字符串中的所有相邻重复项 - 力扣LeetCode 算法原理:栈结构模拟只是需要遍历所有字符串中的字符一次存放到栈里面即可也是可以使用数组来模拟一个栈结构的: class Solution {public String removeDuplicates(String s) {StackCharacter stacknew Stack();String ret;for(char ch:s.toCharArray()){if(stack.isEmpty()) stack.push(ch);else{char topstack.peek();if(topch){stack.pop();}else{stack.push(ch);}}}for(char ch:stack){retch;}return ret;}
} class Solution {public String removeDuplicates(String s) {StringBuilder resultnew StringBuilder();for(char ch:s.toCharArray()){if(result.length()0){result.append(ch);}else{if(result.charAt(result.length()-1)ch){result.deleteCharAt(result.length()-1);}else{result.append(ch);}}}return result.toString();}
} 二)比较含退格的字符串 844. 比较含退格的字符串 - 力扣LeetCode 算法原理:如果遇到空格那么直接消掉前面的字符即可如果当前的第一个字符是#那么不会抵消前面的任何一个字符仍然是一个空字符串 class Solution {public String changeStr(String str){StackCharacter stacknew Stack();String ret;for(char ch:str.toCharArray()){if(ch#){if(!stack.isEmpty()) stack.pop();else continue;} else stack.push(ch);}for(char ch:stack) retch;return ret.toString();}public boolean backspaceCompare(String s, String t) {return changeStr(s).equals(changeStr(t));}
} 三)基本运算器(2) 224. 基本计算器 - 力扣LeetCode 算法原理: 1)由于乘除运算优于加减运算因此我们不妨先考虑先进行所有的乘除运算并将这些乘除运算后的整数值放回到原表达式的位置然后随后将所有的乘除运算都计算完成之后随后整个表达式里面的值就是就是相当于是整个一系列整数相加减的值 2)因此我们可以使用一个栈保存这些进行乘除运算之后的整数的值对于加减号的数字可以直接压入到栈里面对于乘除号的数字可以直接和栈顶元素进行计算并替换栈顶元素作为计算之后的结果