1.自己的暴力解法
无
2.自己的进阶解法
class Solution {
public:
bool backspaceCompare(string s, string t) {
string S, T;
int ptr = 0;
while (ptr <= s.size() - 1)
{
if (s[ptr] != '#') S.push_back(s[ptr]);
else if (S.size() > 0) S.pop_back();
++ptr;
}
ptr = 0;
while (ptr <= t.size() - 1)
{
if (t[ptr] != '#') T.push_back(t[ptr]);
else if (T.size() > 0) T.pop_back();
++ptr;
}
if (S == T) return true;
else return false;
}
};
3.自己的库函数解法
无
4.题解的暴力解法
无
5.题解的进阶解法
class Solution {
public:
string build(string str)
{
string STR;
for (char ch : str)
{
if (ch != '#') STR.push_back(ch);
else if (!STR.empty()) STR.pop_back();
}
return STR;
}
bool backspaceCompare(string s, string t) {
return build(s) == build(t);
}
};
6.总结
可以多使用C++11里的新循环法。有重复代码要记得总结成一个函数。
原文地址:https://www.jb51.cc/wenti/3284485.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。