[luoguP1098] 字符串的展开(模拟)
一个模拟。
代码
#include <cstdio>
#include <cstring>
#include <iostream>
#define isword(x) ((x) >= 'a' && (x) <= 'z')
#define swap(x, y) ((x) ^= (y) ^= (x) ^= (y)) int n, p1, p2, p3, add, d, start, end;
char s[1000001]; int main()
{
int i, j, k;
scanf("%d %d %d", &p1, &p2, &p3);
scanf("%s", s + 1);
n = strlen(s + 1);
for(i = 1; i <= n; i++)
{
if(s[i] != '-' || i == 1 || i == n || (isword(s[i - 1]) && isdigit(s[i + 1])) || (isdigit(s[i - 1]) && isword(s[i + 1])) || (s[i] == '-' && (s[i - 1] == '-' || s[i + 1] == '-'))) putchar(s[i]);
else
{
if(s[i - 1] + 1 == s[i + 1]) continue;
if(s[i - 1] >= s[i + 1])
{
putchar('-');
continue;
}
add = 0;
d = 1;
start = s[i - 1] + 1;
end = s[i + 1];
if(p3 == 2) swap(start, end), start -= 1, end -= 1, d = -1;
if(p1 == 3)
{
for(j = 1; j <= p2; j++)
for(k = start; k != end; k += d) putchar('*');
continue;
}
if(isword(s[i - 1]) && p1 == 2) add -= 32;
for(k = start; k != end; k += d)
for(j = 1; j <= p2; j++)
putchar(k + add);
}
}
return 0;
}
[luoguP1098] 字符串的展开(模拟)的更多相关文章
- Luogu 1098 - 字符串的展开 - [字符串操作][模拟]
题目链接:https://www.luogu.org/problemnew/show/P1098 题目描述在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中 ...
- 洛谷P1098 字符串的展开【字符串】【模拟】
题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母或数 ...
- noip200706字符串的展开
试题描述: 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母获 ...
- 洛谷 P1098 字符串的展开
题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母或数 ...
- 洛谷——P1098 字符串的展开
P1098 字符串的展开 题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输 ...
- 洛谷—— P1098 字符串的展开
https://www.luogu.org/problem/show?pid=1098 题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类 ...
- [NOIP2007] 提高组 洛谷P1098 字符串的展开
题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母获数 ...
- 【b702】字符串的展开
Time Limit: 1 second Memory Limit: 50 MB [问题描述] 在初赛普及组的"阅读程序写结果"的问题中,我们曾给出一个字符串展开的例子:如果在输入 ...
- [Noip2007] 字符串的展开
题目描述 在初赛普及组的“阅读程序写结果”的问题中,我们曾给出一个字符串展开的例子:如果在输入的字符串中,含有类似于“d-h”或者“4-8”的字串,我们就把它当作一种简写,输出时,用连续递增的字母或数 ...
随机推荐
- Android学习备忘笺02Fragment
Android中Fragment可以将UI界面分成多个区块,一般静态或动态添加Fragment. 01.新建Fragment实例 一个Fragment实例包括两个部分:类对象和布局文件(可视化部分). ...
- 从源码对比DefaultServeMux 与 gorilla/mux
从源码对比DefaultServeMux 与 gorilla/mux DefaultServeMux Golang自带的net/http库中包含了DefaultServeMux方法,以此可以搭建一个稳 ...
- iOS地图----MapKit框架
1.MapKit框架使用前提 ①导入框架 ②导入主头文件 #import <MapKit/MapKit.h> ③MapKit框架使用须知 MapKit框架中所有数据类型的前缀都是MK Ma ...
- 字符串(String)几个常用方法的详解
String:(字符串) indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置. stringObject.indexOf(searchvalue,fromindex) searc ...
- php常用的一些代码
1.获取用户真实ip function getIP() { if (getenv("HTTP_X_FORWARDED_FOR")) { // 这个提到最前面,作为优先级,nginx ...
- vba,设置,excel,wps ,页面设置例子
Sub yemian()'按钮1点击触发 执行下面的命令With Sheets(1).PageSetup'对像是表格1的页面设置的函数PageSetup,下面是函数的属性修改前面加. .Orienta ...
- js 复制文字、 复制链接到粘贴板
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- thisInObject
var k = { name:"kName" ,getName:function(){ console.info(this.name) } ,getParentName:funct ...
- 防止asp.net连续点击按钮重复提交
1.在Page_Load中添加如下代码: protected void Page_Load(object sender, EventArgs e) { this.btnEdit.Attributes[ ...
- Js获取操作系统版本 && 获得浏览器版本
//利用原生Js获取操作系统版本function getOS() { var sUserAgent = navigator.userAgent; var isWin = (navigator.plat ...