由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
JobHunting版 - 【leetcode restore IP address】为什么这种情况一定要用tmp?
相关主题
麻烦大家帮看看这段代码的问题我这个 3Sum 怎么过不了leetcode的测试阿
请问我写的这个代码哪可以改进一下问大牛们一个Leetcode上的题
高人来解这道题,帮帮忙!leetcode 3sum
leetcode combinationsum2 超时请教下leetcode Permutations II
问一leetcode题,为什么要resize。题目Generate Parentheses。帮忙看道题:[leetcode] word break
请问大牛leetcode 3Sum 和4sum的问题leetcode里的Palindrome partition问题
lc 上面4 sum的时间复杂度要求多少?帮忙看看为撒 leetcode OJ time out "Substring with Concatenation of All Words "
面试的时候,用c++的 vector或者string的类进行操作是被允许的吗?[solved]stock这题目我 自己调试没问题,为什么leetcode总过不去
相关话题的讨论汇总
话题: ans话题: tokenleft话题: string话题: result
进入JobHunting版参与讨论
1 (共1页)
W********e
发帖数: 45
1
【leetcode restore IP address】这题,思路和算法我都写出来了,不过有个地方觉
得很奇怪,小问题 ,可是我没想明白,请指教!
问题就是为什么要用tmp来代替ans这个参数?在下面的code里我有coment
class Solution {
public:
vector restoreIpAddresses(string s) {
vector result;
string ans;
dfs(s,&result,ans,4);
return result;

}
void dfs(string s,vector*result, string ans,int tokenLeft)
{
int i,sectionValue=0;
if(s.length()==0 && tokenLeft==0)
{
result->push_back(ans);
return;
}
if(tokenLeft==0||s.length()==0)
{
return;
}

if(s.at(0)=='0')
{
if(tokenLeft!=4)
{
ans.append(".");
}
ans.append("0");
dfs(s.substr(1),result,ans,tokenLeft-1);
}
else
{

for(i=0;i<3&&i {
sectionValue = sectionValue *10+s.at(i)-'0';
if(sectionValue<=255)
{
//string tmp = ans;
if(tokenLeft!=4)
{
ans.append(".");
}
//tmp.append(s.substr(0,i+1));
ans.append(s.substr(0,i+1));//这里我直接用ans,并且直接
传进入下面的dfs,总是会出错。但是用tmp代替ans确没问题????????
dfs(s.substr(i+1),result,ans,tokenLeft-1);//tmp
}
}
}

}

};
细节不行。。求指教!!
d*******3
发帖数: 58
2
假设当前字符串是123,ans="xxx.xxx",你当前ip段选择了1,
ans ="xxx.xxx.1",然后dfs到下一段(假设下一段成功了,即xxx.xxx.1.23)。然后退
回来,你再次尝试选12,这个时候ans+"12"="xxx.xxx.1.12",然后再加上下一步成了"
xxx.xxx.1.12.3",这显然是不对的。。。
W********e
发帖数: 45
3

可是用tmp,tmp=ans,不是一样有这个问题么??

【在 d*******3 的大作中提到】
: 假设当前字符串是123,ans="xxx.xxx",你当前ip段选择了1,
: ans ="xxx.xxx.1",然后dfs到下一段(假设下一段成功了,即xxx.xxx.1.23)。然后退
: 回来,你再次尝试选12,这个时候ans+"12"="xxx.xxx.1.12",然后再加上下一步成了"
: xxx.xxx.1.12.3",这显然是不对的。。。

W********e
发帖数: 45
4

想通了,谢谢啦!

【在 W********e 的大作中提到】
:
: 可是用tmp,tmp=ans,不是一样有这个问题么??

d*******3
发帖数: 58
5
额。。。
1 (共1页)
进入JobHunting版参与讨论
相关主题
[solved]stock这题目我 自己调试没问题,为什么leetcode总过不去问一leetcode题,为什么要resize。题目Generate Parentheses。
leetcode里, backtracking的time complexity怎么算,比如permutations这题目请问大牛leetcode 3Sum 和4sum的问题
这种backtracking的问题怎么算时间复杂度?比如palindrom patitioning.lc 上面4 sum的时间复杂度要求多少?
有人面试碰到过Distinct Subsequences?面试的时候,用c++的 vector或者string的类进行操作是被允许的吗?
麻烦大家帮看看这段代码的问题我这个 3Sum 怎么过不了leetcode的测试阿
请问我写的这个代码哪可以改进一下问大牛们一个Leetcode上的题
高人来解这道题,帮帮忙!leetcode 3sum
leetcode combinationsum2 超时请教下leetcode Permutations II
相关话题的讨论汇总
话题: ans话题: tokenleft话题: string话题: result