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