9-22 腾讯音乐笔试AK
#腾讯音乐#
1.签到题
找到最后一个0或5,删除就行
2.树的题目,排列组合,有一定处理技巧
3.动态规划,逆向思维,逆向遍历字符串
粘下第三题代码吧
class Solution {
public:
int mod=1e9+7;
int cntOfMethod(string t) {
vector<long long > dp(t.size()+1,0);
dp[t.size()]=1;
for(int i=t.size();i>0;i--)
{
dp[i-1]=(dp[i-1]+dp[i])%mod;
//从字符串i开始往前找。
string s="";
for(int j=i-1;j>=0;j--)
{
s=t[j]+s;
if(s.size()<2)
continue;
for(int k=0;k+s.size()-1<j;k++)
{
if(t.substr(k,s.size())==s)
{
dp[j]=(dp[j]%mod+dp[i]%mod)%mod;
}
}
}
}
return dp[0]%mod;
}
};
第二题代码 ,代码略微丑陋
1.签到题
找到最后一个0或5,删除就行
2.树的题目,排列组合,有一定处理技巧
3.动态规划,逆向思维,逆向遍历字符串
粘下第三题代码吧
class Solution {
public:
int mod=1e9+7;
int cntOfMethod(string t) {
vector<long long > dp(t.size()+1,0);
dp[t.size()]=1;
for(int i=t.size();i>0;i--)
{
dp[i-1]=(dp[i-1]+dp[i])%mod;
//从字符串i开始往前找。
string s="";
for(int j=i-1;j>=0;j--)
{
s=t[j]+s;
if(s.size()<2)
continue;
for(int k=0;k+s.size()-1<j;k++)
{
if(t.substr(k,s.size())==s)
{
dp[j]=(dp[j]%mod+dp[i]%mod)%mod;
}
}
}
}
return dp[0]%mod;
}
};
第二题代码 ,代码略微丑陋
全部评论
兄弟,想问下,第二题,计算每个二叉树最底层叶子节点数量,然后全排列,将以每个二叉树为底的情况想加,但是我这样做只过了80样例,是需要考虑什么特殊情况吗?
太强了,给我看都看不懂
第2题能讲讲什么思路吗
相关推荐
点赞 评论 收藏
分享