找出一定没问题的字符(即一连串的额字符x个数能被k整除的),剩下的字符都是可能有问题的。

#include<cstdio>
#include<cstring>
#include<cmath>
#include<vector>
#include<map>
#include<queue>
#include<stack>
#include<algorithm>
using namespace std; int k;
char s[];
int flag[];
vector<int>ans;
char out[];
int sz;
int dd[]; int main()
{
memset(dd,,sizeof dd);
memset(flag,,sizeof flag);
scanf("%d",&k);
scanf("%s",s);
int len=strlen(s); int L=;
while()
{
int R;
for(int i=L; s[i]; i++)
{
if(s[i]==s[L]) R=i;
else break;
}
if((R-L+)%k!=) flag[s[L]]=;//一定不破
L=R+;
if(L>=len) break;
}
memset(out,,sizeof out);
sz=;
int p=;
while()
{
if(p>=len) break;
if(flag[s[p]]==)
{
out[sz++]=s[p];
p++;
}
else
{
out[sz++]=s[p];
ans.push_back(s[p]);
p=p+k; }
}
for(int i=; i<ans.size(); i++)
if(dd[ans[i]]==)
{
dd[ans[i]]=;
printf("%c",ans[i]);
} printf("\n%s\n",out);
return ;
}

PAT (Advanced Level) 1112. Stucked Keyboard (20)的更多相关文章

  1. PAT (Advanced Level) 1084. Broken Keyboard (20)

    简单题. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #in ...

  2. 【PAT甲级】1112 Stucked Keyboard (20分)(字符串)

    题意: 输入一个正整数K(1<K<=100),接着输入一行字符串由小写字母,数字和下划线组成.如果一个字符它每次出现必定连续出现K个,它可能是坏键,找到坏键按照它们出现的顺序输出(相同坏键 ...

  3. PAT (Advanced Level) Practice 1035 Password (20 分) 凌宸1642

    PAT (Advanced Level) Practice 1035 Password (20 分) 凌宸1642 题目描述: To prepare for PAT, the judge someti ...

  4. PAT (Advanced Level) Practice 1008 Elevator (20 分) 凌宸1642

    PAT (Advanced Level) Practice 1008 Elevator (20 分) 凌宸1642 题目描述: The highest building in our city has ...

  5. PAT甲题题解-1112. Stucked Keyboard (20)-(map应用)

    题意:给定一个k,键盘里有些键盘卡住了,按一次会打出k次,要求找出可能的坏键,按发现的顺序输出,并且输出正确的字符串顺序. map<char,int>用来标记一个键是否为坏键,一开始的时候 ...

  6. PAT (Advanced Level) Practice 1035 Password (20 分)

    To prepare for PAT, the judge sometimes has to generate random passwords for the users. The problem ...

  7. 【PAT Advanced Level】1008. Elevator (20)

    没什么难的,简单模拟题 #include <iostream> using namespace std; int main() { int num; cin>>num; int ...

  8. PAT (Advanced Level) 1108. Finding Average (20)

    简单模拟. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #i ...

  9. PAT (Advanced Level) 1100. Mars Numbers (20)

    简单题. #include<cstdio> #include<cstring> #include<cmath> #include<vector> #in ...

随机推荐

  1. 37.看下图实现如下接口和类,并完成Adventure中的主方法。

    //接口Swim package jieKou; public interface ICanswim { void Swim(); } //接口Fly package jieKou; public i ...

  2. java实现树型结构样式

    import javax.swing.*; import javax.swing.event.*; import javax.swing.tree.*; public class Root exten ...

  3. 获取Camera 支持视频的尺寸

    <uses-permission android:name="android.permission.CAMERA" > </uses-permission> ...

  4. 自定义Button成进度条

    ProgressButton源码: package com.example.progressbutton; import android.content.Context; import android ...

  5. Apriori算法-java

    package com.yang; import java.util.*; public class Apriori { private double minsup = 0.2;// 最小支持度   ...

  6. Hibernate的查询,二级缓存,连接池

    Hibernate的查询,二级缓存,连接池 1.Hibernate查询数据 Hibernate中的查询方法有5中: 1.1.Get/Load主键查询 使用get或者load方法来查询,两者之间的区别在 ...

  7. Linux关机命令详解

    在linux下一些常用的关机/重启命令有shutdown.halt.reboot.及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的. Linux centos重启命令: 1. ...

  8. Java中String转换Double类型 Java小数点后留两位

    Java中String转换Double类型 double num1 = 0.0; String qq = "19.987"; num1 = Double.valueOf(qq.to ...

  9. svn revert

    本地开发环境出现一个问题,用revert完美解决. 问题描述: 文件static/image/common/jiqiaodaren.png已经被提交到svn上,但是我的开发环境因未与svn同步,所以没 ...

  10. docker镜像与容器概念

    本文用图文并茂的方式介绍了容器.镜像的区别和Docker每个命令后面的技术细节,能够很好的帮助读者深入理解Docker. 这篇文章希望能够帮助读者深入理解Docker的命令,还有容器(containe ...