算法二
来源:互联网 发布:三菱plc解密软件 编辑:程序博客网 时间:2024/06/16 22:18
垃圾邮件检查
小明被垃圾邮件所困扰,遂决定构造自己的垃圾邮件过滤器:
- 通过遍历邮件的每一行文字,来判断该行为good还是bad
- bad行越多,该邮件越有可能是垃圾邮件
- good行使用“o”来标记,bad行使用“x”来标记
- 所有的标记放到judgeLog字符串中
- 例如judgeLog=”oxooo”代表邮件有5行,其中第二行是bad
- 小明给出了伪代码实现
// 设置该邮件的score为0// 对该邮件的每一行进行遍历// 如果该行为good,将score加上G// 如果改行为bad,将score减去B// 如果score为负// 返回该邮件为垃圾邮件("SPAM")// 如果score永远不是负数// 返回该邮件为正常邮件("NOT SPAM")
伪代码中G、B为正整数,分别代表good,bad的权重值(由用户自定义)
输入
- 行标记字符串(string):judgeLog
- good行权重(int):good
- bad行权重(int):bad
输出
- 是否为垃圾邮件(string):SPAM / NOT SPAM
思路
遍历judgeLog,求取score的值,当score为负数时及时返回
代码实现
#include <iostream>#include <string>using namespace std;class SpamChecker{public: static string spamcheck(string judgeLog, int good, int bad) { int sum=0; for(int i=0; i<judgeLog.length(); i++) { if('o' == judgeLog[i]) sum += good; else { sum -= bad; if(sum<0) return "NOT SPAM"; } } return "SPAM"; };};int main(){ string judgeLog; int good, bad; cout << "set judgeLog:"<<endl; cin >> judgeLog; cout << "set good:" << endl; cin >> good; cout << "set bad:" << endl; cin >> bad; string resultSpam = SpamChecker::spamcheck(judgeLog,good,bad); cout << resultSpam; return 0;}
阅读全文
0 0
- 算法二
- 算法二
- 算法二
- 算法二
- 【算法导论】排序算法 二
- 算法二:变动性算法
- STL算法---查找算法(二)
- STL算法---排序算法(二)
- 算法二(贪心算法)
- 算法学习(二) 贪婪算法
- 算法尝试(二)
- 二、图论算法
- STL算法之二
- 算法实现(二)
- 排序算法(二)
- 基础算法--递归(二)
- MD5算法(二)
- 基于计算器算法二
- win7 64位上 Loadrunner11 学习路程
- 2017.7.29
- c的注释转换成cpp
- 怎么监视线程
- 图像基础6 图像匹配--欧氏距离匹配
- 算法二
- java String.valueOf()的作用
- spring 源码学习-容器初始化-1
- 【STM32】 keil软件工具--Configuration详解(上)
- hdu 2047 阿牛的EOF牛肉串
- HDU 1009 FatMouse' Trade
- 理解CSS盒模型
- spring boot初识之helloworld
- Js跨域问题