Content

有一个字符串 \(s\),它满足以下要求:

  • 只包含 .@ 和小写字母。
  • 不以 . 为开头或者结尾。
  • 不以 @ 为开头或者结尾,并只能包含一个 @

请将其进行如下操作,使得这个字符串长度最小:

  • 将子串 dot 转化为 .
  • 将子串 at 转化为 @

数据范围:\(1\leqslant |s|\leqslant 100\)。

Solution

模拟就好,其实不需要什么 STL 里面的高级函数(只有一个 \(\texttt{size}\) 函数)。

首先得要找到子串 \(\texttt{dot}\) 和 \(\texttt{at}\) 的位置,尤其要注意的是 @ 最多只能用一次,所以开个变量判断一下。还有不能够在开头和结尾出现 . 或者 @

Code

#include <cstdio>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std; int atflag;
string s; int main() {
cin >> s;
int len = s.size();
for(int i = 0; i < len;) {
if(i > 0 && i < len - 3 && s[i] == 'd' && s[i + 1] == 'o' && s[i + 2] == 't') {
printf(".");
i += 3;
} else if(i > 0 && i < len - 2 && s[i] == 'a' && s[i + 1] == 't' && !atflag) {
printf("@");
i += 2;
atflag = 1;
} else {
printf("%c", s[i]);
++i;
}
}
return 0;
}

最新文章

  1. 发布报错:Error ITMS-90635 - Invalid Mach-O in bundle - submitting to App store
  2. 【2016.3.30项目技术记录】]VS2010自动生成MFC单文档框架程序的修改:去除属性框,在CViewTree类中添加鼠标单击响应
  3. JavaScript测试工具
  4. 【技术贴】解决MySql连接不上 ip远程连接Host is not allowed to conn
  5. 设计模式23---设计模式之装饰模式(Decorator)(结构型)
  6. 本地或者是koala软件编译less文件为css
  7. 边框圆角化方式(原文链接http://www.cnblogs.com/SJP666/p/4678730.html)
  8. libimobiledevice命令
  9. MVC view视图获取Html.RenderAction方式带来的参数
  10. zookeeper C API
  11. 并发编程(三):从AQS到CountDownLatch与ReentrantLock
  12. 使用Eclipse远程调试
  13. 2/17 笔记 n:字符串索引、切片、数据转换笔记
  14. vs2017 打开cs文件提示无法识别的GUID格式
  15. linux文件管理之查找
  16. Bash shell 命令行 快捷键
  17. POJ 2240 - Arbitrage - [bellman-ford求最短路]
  18. nginx 跨域解决
  19. intellij idea 部署项目的时候 图中application context 写不写有什么关系?有什么作用?
  20. Linux学习系列——零基础开始

热门文章

  1. mysql变成类型字段varchar值更新变长或变短底层文件存储原理
  2. C/C++ Qt Dialog 对话框组件应用
  3. FVCOM编译过程详解
  4. 如何根据taxid(或taxname)快速获得taxname(或taxid)?
  5. adblock plus-看下图你就懂
  6. 05 Windows安装python3.6.4+pycharm环境
  7. 巩固javaweb的第二十三天
  8. Shell 打印空行的行号
  9. EDA简介
  10. 对于Linq关键字和await,async异步关键字的扩展使用