PTA 1078 字符串压缩与解压(Python3)

news/2024/10/30 9:24:39/

文本压缩有很多种方法,这里我们只考虑最简单的一种:把由相同字符组成的一个连续的片段用这个字符和片段中含有这个字符的个数来表示。例如 ccccc 就用 5c 来表示。如果字符没有重复,就原样输出。例如 aba 压缩后仍然是 aba

解压方法就是反过来,把形如 5c 这样的表示恢复为 ccccc

本题需要你根据压缩或解压的要求,对给定字符串进行处理。这里我们简单地假设原始字符串是完全由英文字母和空格组成的非空字符串。

输入格式:

输入第一行给出一个字符,如果是 C 就表示下面的字符串需要被压缩;如果是 D 就表示下面的字符串需要被解压。第二行给出需要被压缩或解压的不超过 1000 个字符的字符串,以回车结尾。题目保证字符重复个数在整型范围内,且输出文件不超过 1MB。

输出格式:

根据要求压缩或解压字符串,并在一行中输出结果。

输入样例 1:

C
TTTTThhiiiis isssss a   tesssst CAaaa as

输出样例 1:

5T2h4is i5s a3 te4st CA3a as

输入样例 2:

D
5T2h4is i5s a3 te4st CA3a as10Z

输出样例 2:

TTTTThhiiiis isssss a   tesssst CAaaa asZZZZZZZZZZ

 提交结果:


 代码: 

data1 = input()
data2 = input()
s = ''
if data1 == 'C':i = 0while i < len(data2):j = i + 1count = 1while j < len(data2) and data2[j] == data2[i]:count += 1j += 1if count == 1:s += data2[i]else:s += str(count) + data2[i]i = j
else:i = 0while i < len(data2):j = i + 1if data2[i].isdigit():while data2[j].isdigit():j += 1num = int(data2[i:j])s += data2[j] * numi = j + 1else:s += data2[i]i = j
print(s)

http://www.ppmy.cn/news/271318.html

相关文章

【项目】树莓派4B镜像安装

本文主要记录下如何使用Raspberry Pi image 软件进行树莓派镜像进行安装。 官网&#xff1a;Raspberry Pi OS – Raspberry Pi 百度网盘&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1G7z1Fdvk5Chmhj894WPU3A 提取码&#xff1a;xnzw 一、格式化SD卡 若SD卡存在…

酷睿i5 12490f什么水平 i5 12490f属于什么档次 i512490f怎么样

i5-12490F可以看做是i5-12400F的加强版&#xff0c;最显眼的变化就是频率从2.5GHz&#xff5e;4.4GHz提升到3.0GHz&#xff5e;4.6GHz&#xff0c;其他看似差不多。价格随有波动&#xff0c;但基本保持在比i5-12400贵100元的水平。当然比高一级的i5-12600KF要便宜得多啦。i5 12…

Cisco 4507R交换机IOS软件升级方法

Cisco 4507R交换机IOS软件升级方法 现有设备信息 XIASW#show versionCisco IOS Software, Catalyst 4000 L3 Switch Software (cat4000-I5S-M), Version 12.2(25)EWA7, RELEASE SOFTWARE (fc1)Technical Support: http://www.cisco.com/techsupportCopyright (c) 1986-2006 by…

MCS51 系列单片机的中央处理器(CPU)

51 系列单片机的 CPU 是单片机的控制指挥中心。它由运算器、布尔处理器、工作 寄存器和控制器组成 CPU 控制器 运算器 &#xff08;1&#xff09;运算器 以算术/逻辑运算单元 ALU&#xff08;Arithmetic and Logical Unit&#xff09;为核心&#xff0c;由暂存器 1、暂存器2…

51单片机(一)软硬件环境和单片机介绍

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

python调用海康sdk出现的问题

关于python调用海康威视SDK 项目场景&#xff1a; Win10系统&#xff0c;64位&#xff0c;Anaconda3 python 3.8(基于anaconda环境) opencv 3.4.1 Visual Studio 2015 硬件&#xff1a;DS-2CD3T86FWDV2-I5S 相机SDK&#xff1a;CH-HCNetSDKV6.1.6.45_build20210302_win64&…

C51单片机介绍

本文为学习51单片机的学习的基础概述&#xff0c;先介绍单片机是什么&#xff0c;所使用的单片机有什么资源&#xff0c;每一个功能的作用是什么。筆者使用的是STC89C52RC 40I-PDIO40&#xff0c;故以此为基础研究学习。 C51单片机介绍 单片机的概述单片机的组成部分中央处理器…

Python调用海康威视网络相机_调用海康SDK

运行环境&#xff1a; Win10系统&#xff0c;64位&#xff0c;Anaconda3 python 3.7.4(基于anaconda环境) opencv 3.4.6 Visual Studio 2017 硬件&#xff1a;DS-2CD3T86FWDV2-I5S 相机SDK&#xff1a;CH-HCNetSDKV6.1.6.45_build20210302_win64 一、前言 首先&#xff0c;海…