百度笔试 病毒字符串 题解


import re
s = raw_input()
length = len(s)
index = [m.start() for m in re.finditer('virus', s)]
result, pre = 0, 0
for v in index:
    result += ((v - pre) + 1) * ((length - v - 5) + 1)
    pre = v + 1
print(result)

#笔试题目##百度#
全部评论
有问题没 int  findvirus(string s) {     int size = s.size();     int res = 0;     int pos = 0, count = 0;     vector<int>vec;     while ((pos=s.find("virus", pos)) != string::npos)     {         count++;         vec.push_back(pos);         pos+=5;     }     if (count == 0) return 0;     for (int i = 0; i < vec.size(); i++)     {         if (vec[i] == 0 || vec[i] == size - 5)             res += size - 5+1;         else         res += 2*(size - 5 - vec[i])*vec[i];     }     return res; } int main() {     string s1;     cin >> s1;     cout << findvirus(s1) << endl;     system("pause");     return 0; }
点赞 回复 分享
发布于 2018-04-18 22:12
大佬好
点赞 回复 分享
发布于 2018-04-18 21:44

相关推荐

03-13 16:51
已编辑
门头沟学院 硬件开发
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务