题目地址:1133. SPAM

思路:

题目意思是说在‘@’的前后出现题目给定的合法字符或者不连续出现‘.’字符的话,这个就是合理的输出。

那么以@为中心,向前,向后扫描,当扫描到不符合字符时,记录此时位置,以前后为区间,输出字符。

具体代码如下:

 #include <iostream>
#include <string>
using namespace std; bool is_ok(char ch) {
if ((ch >= 'A'&&ch <= 'Z') || (ch >= 'a'&&ch <= 'z') ||
(ch >= ''&&ch <= '') || ch == '-'||ch == '_') {
return true;
}
return false;
} int main() {
string test;
while (getline(cin, test)) {
if (test.size() == ) continue;
for (int i = ; i < test.size()-; i++) {
if (test[i] == '@'&&is_ok(test[i-])&&is_ok(test[i+])) {
int begin, end;
for (begin = i-; begin >= ; begin--) {
if ((test[begin] == '.'&&test[begin+] == '.')) {
break;
}
if (test[begin] != '.'&&!is_ok(test[begin])) {
break;
}
}
if (test[begin+] == '.') begin++;
for (end = i+; end < test.size(); end++) {
if ((test[end] == '.'&&test[end-] == '.')) {
break;
}
if (test[end] != '.'&&!is_ok(test[end])) {
break;
}
}
if (test[end-] == '.') end--;
for (int j = begin+; j <= end-; j++) {
cout << test[j];
}
cout << endl;
}
}
} return ;
}

最新文章

  1. YY一下淘宝商品模型
  2. cshtml常用标签
  3. 在SQL2008中使用XML应对不确定结构的参数
  4. Count and Say
  5. Ubuntu小点汇总,更新中...
  6. Android 学习第1课,JDK工具包的安装
  7. 线程局部变量ThreadLocal的原理及使用范围_1
  8. iOS加入百度地图的几个问题
  9. sqlserver 测试sql语句执行时间
  10. 从零基础到App Store
  11. angularjs hover
  12. python 如何重新加载有修改过的模块(module)
  13. Fedora 开启 ssh
  14. BZOJ 1925: [Sdoi2010]地精部落( dp )
  15. SSM-SpringMVC-01:SpringMVC是什么?SpringMVC执行流程
  16. halcon+WinForm打开摄像头
  17. pyc文件
  18. Qt学习记录--02 Qt的信号槽机制介绍(含Qt5与Qt4的差异对比)
  19. SQL server学习(四)T-SQL编程之事务、索引和视图
  20. Webpack 学习2

热门文章

  1. Java线程Dump分析工具--jstack【转载】
  2. 20个Linux服务器性能调优技巧
  3. NS CKD
  4. 《使用Win32DiskImager安装Ubuntu16.04》
  5. AFNetworking (3.1.0) 源码解析 &lt;五&gt;
  6. C primer plus 读书笔记第二章
  7. VS2008 动态库和静态库的生成和加载
  8. NSRunLoop(来自官方文档)
  9. 自定义绘制View
  10. Android - ContentProvider机制