当前位置: 首页 > news >正文

虚拟主机网站网站建设小程序开发公司

虚拟主机网站,网站建设小程序开发公司,网站建设的用途是什么,做视频免费模板下载网站题目 844. 比较含退格的字符串 - 力扣(LeetCode) 思路 这道题是比较含退格的字符串,我看到题目后的第一反应是需要先处理退格符号,然后再比较两个字符串是否相等。 我的思路是: 分别处理两个字符串,将…

题目

844. 比较含退格的字符串 - 力扣(LeetCode)

思路

这道题是比较含退格的字符串,我看到题目后的第一反应是需要先处理退格符号,然后再比较两个字符串是否相等。

我的思路是:

  1. 分别处理两个字符串,将它们转换成删除了退格符号后的实际文本
  2. 然后比较这两个处理后的字符串是否相等

对于处理退格符号,我想到了两种方法:

第一种是使用栈。遍历字符串,遇到普通字符就入栈,遇到'#'就弹出栈顶元素(如果栈不为空)。最后栈中剩下的字符就是最终的字符串。这种方法时间和空间复杂度都是O(n)。

第二种是直接在字符串上操作。维护一个指针表示当前有效字符串的结束位置,遍历原字符串,遇到普通字符就将其放到指针位置并将指针后移,遇到'#'就将指针前移(如果可能的话)。最后指针前的子串就是最终的字符串。这种方法的空间复杂度可以优化到O(1)。

举个例子,对于示例1中的s = "ab#c":

  • 遍历到'a',加入结果,结果变成"a"
  • 遍历到'b',加入结果,结果变成"ab"
  • 遍历到'#',删除上一个字符,结果变成"a"
  • 遍历到'c',加入结果,结果变成"ac"

同样处理t = "ad#c":

  • 最终结果也是"ac"

所以两个字符串相等,返回true。

在实际中,我会先实现第一种栈的方法,因为它更直观。如果要求优化空间复杂度,我再提出第二种方法。

还有一种更高级的解法是使用双指针从后向前遍历两个字符串,这样可以同时实现O(n)的时间复杂度和O(1)的空间复杂度。

读者可能出现的错误写法

class Solution {
public:bool backspaceCompare(string s, string t) {string one = result(s);string two = result(t);return s==t;}string result(string str){string st;for(int i =0;i<str.size();i++){if(st.empty() || str[i]!='#'){st.push_back(str[i]);}else{st.pop_back();}}return st;}
};

第一个错误是在backspaceCompare函数中,你在比较时使用了原始的字符串s和t,而不是处理后的字符串one和two。应该改为:return one == two;

第二个错误是在result函数中,当遇到'#'字符时的逻辑有问题。当前的代码是:

if(st.empty() || str[i]!='#')
{st.push_back(str[i]);
}
else
{st.pop_back();
}

这个逻辑会导致:

  • 如果st为空或当前字符不是'#',就将当前字符加入结果
  • 否则,弹出结果中的最后一个字符

问题在于,当st为空时,即使当前字符是'#',也会将'#'加入结果,这是不正确的。退格符应该删除前一个字符,如果没有前一个字符,就忽略这个退格符。

正确写法

class Solution {
public:bool backspaceCompare(string s, string t) {string one = result(s);string two = result(t);return one==two;}string result(string str){string st;for(int i =0;i<str.size();i++){if(str[i]!='#'){st.push_back(str[i]);}else if(!st.empty()){st.pop_back();}}return st;}
};
http://www.dtcms.com/a/608788.html

相关文章:

  • 网站建设维护论文网站建设教程论坛
  • 先备案域名还是先做网站莱州房产网房产信息
  • 网站建设公司知道万维科技青岛公司的网站设计
  • 专业的网站开发团队凡客诚品陈年女儿
  • asp商业网站源码哪里有学网页设计的
  • 网站最合适的字体大小网站备案 幕布
  • 惠州seo网站管理wordpress 插件发文章
  • 昆明手机网站建设企业网站开发研究现状
  • 开发一个小程序的价格南昌seo排名
  • 城市轨道建设规范下载网站网站建设佰首选金手指三十
  • 公司手机网站建设服装设计师月薪多少
  • 怎么选择企业建站公司贵州黔水建设股份有限公司网站
  • 微信网站的制作办公室装修效果图片大全
  • 有关网站建设的书籍用层做的网站
  • 网站换主机换域名公司简介范文 共10篇
  • 荣成市住房和城乡建设局网站wordpress 安全问题
  • 保定网站建设团队内蒙古企业网站建设
  • 江苏省住房保障建设厅网站首页凌河建设网站
  • 平潭综合实验区交通与建设网站开发app需要什么设备
  • wordpress sso插件开发seo高级优化方法
  • 山东省城乡住房和城乡建设厅网站南京seo网络推广
  • 爱站网关键词挖掘机网站做专题
  • dw做的网页在网站图片不显示莱芜金点子广告电子版2024
  • 河池企业网站开发公司成都网站设计网站
  • 域名及网站建设实验报告网络课程网站建设
  • 如何推广网站网站推广常用方法推广普通话图片
  • 网站建设人员的工资分配网站做编辑赚钱
  • 鄂尔多斯 网站建设个体工商户如何注销
  • 网站建设与网页设计期末考试深圳建网站哪家公司好
  • 外国的html 素材网站网络哪个公司便宜又好