【PAT】1112. Stucked Keyboard (20)【字符串处理】

2024-04-12 06:08

本文主要是介绍【PAT】1112. Stucked Keyboard (20)【字符串处理】,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

On a broken keyboard, some of the keys are always stucked. So when you type some sentences, the characters corresponding to those keys will appear repeatedly on screen for k times.

Now given a resulting string on screen, you are supposed to list all the possible stucked keys, and the original string.

Notice that there might be some characters that are typed repeatedly. The stucked key will always repeat output for a fixed k times whenever it is pressed. For example, when k=3, from the string thiiis iiisss a teeeeeest we know that the keys i and e might be stucked, but s is not even though it appears repeatedly sometimes. The original string could be this isss a teest.

翻译:在一个坏掉的键盘上,有些键总是被卡住。所以当你输入一些句子时,这些键对应的字符会在屏幕上重复出现k次。
现在,给定屏幕上的结果字符串,你需要列出所有可能的键和原始字符串。
注意,可能有一些字符是重复输入的。无论何时按下,被卡住的键总会重复输出固定的k次。例如,当k=3时,从字符串thiiis iiisss a teeeeeest中我们知道键i和e可能被卡住,但s不会,尽管它有时会重复出现。原始的字符串可以是this isss a teest。

Input Specification:

Each input file contains one test case. For each case, the 1st line gives a positive integer k (1<k≤100) which is the output repeating times of a stucked key. The 2nd line contains the resulting string on screen, which consists of no more than 1000 characters from {a-z}, {0-9} and _. It is guaranteed that the string is non-empty.

翻译:每个输入文件包含一组测试数据。对于每组输入数据,第一行给出一个正整数k(1<k≤100) ,代表卡住的键的重复次数。第二行包含屏幕上的结果字符串,它由不超过1000个来自{a-z}、{0-9}和_的字符组成。数据保证字符串是非空的。

Output Specification:

For each test case, print in one line the possible stucked keys, in the order of being detected. Make sure that each key is printed once only. Then in the next line print the original string. It is guaranteed that there is at least one stucked key.

翻译:对于每组测试数据,输出一行可能卡住的按键,按照发现的顺序排序。确保每个键只输出一次。然后在下一行中打印原始字符串。数据保证至少有一个被卡住的键。


Sample Input:

3
caseee1__thiiis_iiisss_a_teeeeeest


Sample Output:

ei
case1__this_isss_a_teest


解题思路

对出现的连续相同字母进行计数,如果有k次就标记,如果不到k次则记为-1,代表不是卡住的键。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<string>
#include<vector>
#include<algorithm>
#define INF 99999999
#define bug puts("Hello\n")
using namespace std;
int k;
char s[1010];
bool p[1010];
char ans[50],anscount=0;
int v[128];
int vc[128];
int main(){scanf("%d\n%s",&k,s);int length=strlen(s);int ccount=0;char c=' ';for(int i=0;i<length;i++){if(c!=s[i]){if(ccount>0)v[c]=-1;c=s[i];ccount=1;}else{ccount++;if(ccount==k){if(v[c]!=-1)v[c]=1;ccount=0;}}}ccount=0;c=' ';for(int i=0;i<length;i++){p[i]=true;if(c==s[i]){if(v[c]==1){ccount++;p[i]=false;	if(!vc[c]){ans[anscount++]=c;vc[c]=1;}			}if(ccount==k){ccount=0;c=' ';}}else{c=s[i];ccount=1;}}for(int i=0;i<anscount;i++){printf("%c",ans[i]);}printf("\n");for(int i=0;i<length;i++){if(p[i])printf("%c",s[i]);}printf("\n");return 0;
}

这篇关于【PAT】1112. Stucked Keyboard (20)【字符串处理】的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/896312

相关文章

Java使用Thumbnailator库实现图片处理与压缩功能

《Java使用Thumbnailator库实现图片处理与压缩功能》Thumbnailator是高性能Java图像处理库,支持缩放、旋转、水印添加、裁剪及格式转换,提供易用API和性能优化,适合Web应... 目录1. 图片处理库Thumbnailator介绍2. 基本和指定大小图片缩放功能2.1 图片缩放的

精选20个好玩又实用的的Python实战项目(有图文代码)

《精选20个好玩又实用的的Python实战项目(有图文代码)》文章介绍了20个实用Python项目,涵盖游戏开发、工具应用、图像处理、机器学习等,使用Tkinter、PIL、OpenCV、Kivy等库... 目录① 猜字游戏② 闹钟③ 骰子模拟器④ 二维码⑤ 语言检测⑥ 加密和解密⑦ URL缩短⑧ 音乐播放

MySQL常用字符串函数示例和场景介绍

《MySQL常用字符串函数示例和场景介绍》MySQL提供了丰富的字符串函数帮助我们高效地对字符串进行处理、转换和分析,本文我将全面且深入地介绍MySQL常用的字符串函数,并结合具体示例和场景,帮你熟练... 目录一、字符串函数概述1.1 字符串函数的作用1.2 字符串函数分类二、字符串长度与统计函数2.1

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

C# $字符串插值的使用

《C#$字符串插值的使用》本文介绍了C#中的字符串插值功能,详细介绍了使用$符号的实现方式,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录$ 字符使用方式创建内插字符串包含不同的数据类型控制内插表达式的格式控制内插表达式的对齐方式内插表达式中使用转义序列内插表达式中使用

Spring Boot 中的默认异常处理机制及执行流程

《SpringBoot中的默认异常处理机制及执行流程》SpringBoot内置BasicErrorController,自动处理异常并生成HTML/JSON响应,支持自定义错误路径、配置及扩展,如... 目录Spring Boot 异常处理机制详解默认错误页面功能自动异常转换机制错误属性配置选项默认错误处理

SpringBoot 异常处理/自定义格式校验的问题实例详解

《SpringBoot异常处理/自定义格式校验的问题实例详解》文章探讨SpringBoot中自定义注解校验问题,区分参数级与类级约束触发的异常类型,建议通过@RestControllerAdvice... 目录1. 问题简要描述2. 异常触发1) 参数级别约束2) 类级别约束3. 异常处理1) 字段级别约束

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引

MySQL字符串常用函数详解

《MySQL字符串常用函数详解》本文给大家介绍MySQL字符串常用函数,本文结合实例代码给大家介绍的非常详细,对大家学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录mysql字符串常用函数一、获取二、大小写转换三、拼接四、截取五、比较、反转、替换六、去空白、填充MySQL字符串常用函数一、

Java堆转储文件之1.6G大文件处理完整指南

《Java堆转储文件之1.6G大文件处理完整指南》堆转储文件是优化、分析内存消耗的重要工具,:本文主要介绍Java堆转储文件之1.6G大文件处理的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言文件为什么这么大?如何处理这个文件?分析文件内容(推荐)删除文件(如果不需要)查看错误来源如何避