首页 > 其他分享 >A - 字符串的展开

A - 字符串的展开

时间:2025-01-22 15:59:31浏览次数:1  
标签:p2 int else ++ str printf 字符串 展开

001. 字符串的展开

原题链接:字符串的展开

纯模拟题

AC代码:

#include <bits/stdc++.h> 
#define ll long long
#define endl '\n'
using namespace std;

string str;

void extend(char a,char b,int p1,int p2,int p3)
{			//确定起点终点,填充字符类型,填充次数,填充顺序
	int n = b - a;
	cout << a;
	if(n > 0)//正常情况 
	{
		if(p1 == 3){//星号,不需要考虑顺序 
			for(int i = 0 ; i < (n - 1)*p2;i++)
				cout << "*"; 
		}
		else if(p1 == 2){//填充大写 
			if(p3 == 1){//原来顺序 
				if(b < 'a') //说明原来是数字 
					for(int i = 1;i < n;i++)
						for(int j = 0;j < p2;j++) 
							printf("%c",a + i); 
				
				else
					for(int i = 1;i < n;i++)
						for(int j = 0;j < p2;j++) 
							printf("%c",a + i - 32);//这里32是差值 
			}
			else{//逆序 
				if(b < 'a') //说明原来是数字 
					for(int i = n - 1;i >= 1; i--)
						for(int j = 0;j < p2;j++) 
							printf("%c",a + i); 
				
				else
					for(int i = n - 1;i >= 1;i--)
						for(int j = 0;j < p2;j++) 
							printf("%c",a + i - 32);//这里32是差值 
			} 
		}
		else {//填充小写 
			if(p3 == 1){//原来顺序  
				for(int i = 1;i < n;i++)
					for(int j = 0;j < p2;j++) 
						printf("%c",a + i);  
			}
			else{//逆序 
				for(int i = n-1;i >= 1;i--)
					for(int j = 0;j < p2;j++) 
						printf("%c",a + i); 
			} 
		}
		 
	}
	else if(n <= 0)
		cout << "-"; 
}

int main(){
	int p1, p2, p3;
	cin >> p1 >> p2 >> p3;
	cin >> str;
	for(int i = 0;i < str.length();i++){
		if(str[i+1] == '-' && ((isdigit(str[i]) && isdigit(str[i+2])) || (islower(str[i]) && islower(str[i+2]))))
        {
			extend(str[i],str[i+2],p1,p2,p3);
			i++ ;
		}
		else{
			cout<<str[i];
		}
	}
	return 0;
}

标签:p2,int,else,++,str,printf,字符串,展开
From: https://www.cnblogs.com/zyihan-crz/p/18686245

相关文章

  • String字符串定义、用法及不可变性
    文章目录前言一、String是什么?二、使用方法1.定义字符串代码如下(示例):2.定义字符串数组代码如下(示例):三、不可变性代码如下(示例):总结前言大家在学习Java语言时,String字符串类是一块不能缺失的学习内容,所以String是什么?该怎么用?以及它为什么是不可变的?接下来......
  • 字符串哈希详解
    哈希函数的选取通常我们采用的是多项式Hash的方法,对于一个长度为l的字符串s来说,我们可以这样定义多项式Hash函数:其中,M需要选择一个素数(至少要比最大的字符要大),b是一个比最大字符大的整数。(ASCII码值比较)之所以选择这样的哈希函数,不仅是因为它不容易产生哈希碰撞(就......
  • TIA SCL编程清除字符串中所有的空格
    今天做一个小的练习,这是2025年第一个记录的学习笔记。在IA新建一个FC,名字叫做TrimSpace,建立以下内部变量: 写一段SCL代码:#len:=LEN(#str_in);#str_trim_out:='';FOR#i:=1TO#lenDOIFMID(IN:=#str_in,L:=1,P:=#i)<>''THEN#str_t......
  • 【leetcode 22】541. 反转字符串II
    思路:其实在遍历字符串的过程中,只要让i+=(2*k),i每次移动2*k就可以了,然后判断是否需要有反转的区间。因为要找的也就是每2*k区间的起点,这样写,程序会高效很多。classSolution{publicStringreverseStr(Strings,intk){char[]ch=s.toCh......
  • 内存字符串有关问题
    问题一:#include<iostream>#include<cstdint>#include<cstring>usingnamespacestd;typedefstructdata{charhwid[4];charsip[4];charrev[4];}Data;intmain(){Datastdata;memset(&stdata,0,sizeof(stdata));......
  • 字符串
    字符串定义字符串:由若干个字符构成的字符序列,每一个字符位置是固定的在java中,提供了一个类来表示字符串:StringJava程序中的所有字符串文字(例如"abc")都被实现为此类的实例【对象】。因为String对象是不可变的,它们可以被共享。思考思考:1、同一个内容的字符串,为什么地......
  • 学霸带你游戏化理解字符串操作与匹配算法
    游戏开发字符串操作应用在现代游戏开发中,字符串处理是一个不可或缺的环节。游戏中的文本内容、玩家输入、动态生成的关卡信息等,都依赖于高效和精确的字符串操作。无论是在处理任务文本、玩家名字,还是实时聊天信息、语言本地化,字符串的高效管理和优化都直接影响着游戏的性能和......
  • 算法随笔_9:压缩字符串
    上一篇: 算法随笔_8:寻找重复数-CSDN博客题目描述如下:给你一个字符数组 chars ,请使用下述算法压缩:从一个空字符串 s 开始。对于 chars 中的每组连续重复字符 :如果这一组长度为 1 ,则将字符追加到 s 中。否则,需要向 s 追加字符,后跟这一组的长度。压缩后得到......
  • LeetCode题练习与总结:反转字符串中的单词 Ⅲ -- 557
    一、题目描述给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例1:输入:s="Let'stakeLeetCodecontest"输出:"s'teLekatedoCteeLtsetnoc"示例2:输入:s="MrDing"输出:"rMgniD"提示:1<=s.length<=5*10^......
  • 用Python检查Android字符串文件通配符
    #!/usr/bin/envpython3importosimportsysfromdatetimeimportdatetime,timedeltaimportreimportxml.etree.ElementTreeasETiflen(sys.argv)<3:exit()print(datetime.now(),'start')timestamp=int(datetime.now().timestamp())en_t......