每日看病毒分析和leetcode-3

leetcode-91. 解码方法

找出最长解码方法

最可笑的是一年前提交过了,且速度很快。现在不会了。

这次添加了笔记,应该不会忘了吧

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
int numDecodings(char * s){
size_t len=strlen(s);
if(len==0)return 0;
if(s[0]=='0')return 0; // 第一个就为0,肯定是0
if(len==1)return 1;
int dp[40000]; // dp[i] 表示到第i个字符有dp[i]种解码方法
memset(dp,0,sizeof(40000));
dp[0]=1;
int num=(s[0]-48)*10+s[1]-48;
dp[1]=num>=11&&num<=26&&s[1]!='0'?2:1;
if(s[0]>'2'&&s[1]=='0')return 0; // 不可能解码
for(int i=2;i<len;i++){
num=(s[i-1]-48)*10+s[i]-48;
if(num==0||s[i]=='0'&&s[i-1]>'2')return 0; // 无法解码
if(s[i]=='0')dp[i]=dp[i-2]; // 这个地方只能两个一起解码,所以解码数量没有增加
else if(num>=11&&num<=26)dp[i]=dp[i-1]+dp[i-2]; // 两种情况,一种情况是两个字符分别解码,那么s[i],还有一种是s[i]和s[i-1]一起解码
else dp[i]=dp[i-1]; // 当num>26时,s[i]只能单独解码
}
return dp[len-1];
}

老毛桃携带木马病毒

火绒大大的文章 https://www.52pojie.cn/thread-1258730-1-1.html

分析

感觉东西不多,但是没有样本不好操作。尝试了虚拟机安装,老毛桃直接找不到虚拟磁盘,看来是对这个做了优化啊。😂