P1098 字符串的展开

规则有点多吧;

isdigit(char) 表示如果字符是数字返回一,否则返回0;

倒序做一个下标就行了;

巧用三目运算符避开分类讨论,避开开头和结尾,根据条件层层逼近;

#include<cstring>
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<string>
using namespace std;
const int maxn=;
char s[maxn],ans[maxn];
int pos;
int p1,p2,p3; int main()
{
scanf("%d%d%d",&p1,&p2,&p3);
scanf("%s",s);
int len=strlen(s);
ans[pos++]=s[];
for(int i=;i<len-;i++)
{
if(s[i]=='-'&&s[i-]!='-')
{
if((isdigit(s[i-])!=isdigit(s[i+]))||s[i-]>=s[i+]) {ans[pos++]=s[i];continue;}
int qw=s[i+]-s[i-]-;
for(int j=;j<=qw;j++)
{
int now=(p3==?j:qw-j+);
for(int k=;k<=p2;k++)
{
if(p1==) ans[pos++]='*';
else ans[pos++]=s[i-]+now-(!isdigit(s[i-])&&p1==?:);
}
}
}
else ans[pos++]=s[i];
}
ans[pos]=s[len-];
cout<<ans;
return ;
}

最新文章

  1. PHP 原型模式
  2. UML——在Visual Studio 2013/2015中设计UML类图
  3. Scrum Meeting---Eight(2015-11-3)
  4. IMX51+WINCE6.0平台缩写意义
  5. Delphi TcxTreelist 表格左边总是缩进去 ,好像有偏移 解决方法
  6. 程序员带你十天快速入门Python,玩转电脑软件开发(四)
  7. Android(java)学习笔记246:ContentProvider使用之学习ContentProvider(内容提供者)的目的
  8. IIS6添加5.3.27 /西部数据网站管理助理升级php
  9. 4月13日 php
  10. 【MFC学习笔记-作业9-基于单击响应的计算平均成绩】【】
  11. Codeforces 12D Ball 树形阵列模拟3排序元素
  12. JavaScript JSON timer(计时器) AJAX HTTP请求 同源策略 跨域请求
  13. 制作流程图,activity,好不容易找到的
  14. BZOJ-1968
  15. JAVA 的关键字 、
  16. [BZOJ]1023 cactus仙人掌图(SHOI2008)
  17. c语言的第三次作业
  18. Java微服务之Spring Boot on Docker
  19. acl权限命令
  20. Visual Studio中定义OVERFLOW不能用

热门文章

  1. pip install scrapy 报错
  2. catch SocketException
  3. 规格化设计——OO第三单元总结
  4. js常用的数组去重方法
  5. Java 进阶面试问题必备
  6. Django使用swagger生成接口文档
  7. k8s 笔记
  8. kubernetes之pod健康检查
  9. CentOS7安装与优化
  10. 国际化(i18n) 各国语言缩写