文章目录
A 简单的字符串处理
- A 简单的字符串处理
- B 多米诺骨牌
- C 翻转棋
- D 多次方程求解
- E 约瑟夫升级
- F 字符画打印,很简单哒
- G 黄金矿工
- H 天之杯
TimeLimit: 1000ms MemoryLimit:32MB Type: 传统题 Special:No 已AC Problem Description 给你两个字符串s1,s2,若s1中的一部分与字符串s2完全相同,则删去这部分。如果删除后s1中仍存在某一部分与s2相同,则继续删除下去,直到s1中没有任何一部分与s2相同
Input 多组输入
第一行给你两个字符串,用空格分开,保证字符串s2中的各个字符都是不同的,字符串s1,s2长度大于等于1小于等于100
Output 输出s1字符串,若s1字符串为空,则输出NULL
SampleInput aaawww aw
awslawslaw awsl
qifei wuhu
SampleOutput NULL
aw
qifei
Hint 对于第一组样例,字符串s1的变化过程为
aaawww—>aaww—>aw—>NULL
对于第二组样例,字符串s1的变化过程为
awslawslaw—>aw
对于第三组样例,字符串s1的变化过程为
qifei
这是本场的第一道题,难度简单,主要考察字符串的处理问题。
解题思路:每次删除S1中的S2就把那些字符替换为’\0’,然后每次循环把S1更新一遍,最后S1的长度为0输出NULL否则输出剩下的S1。
如果单次循环未删除任何字符就退出break。注意多组输入!!!
代码如下:
#include
using namespace std;
int main(void)
{
char s1[105],s2[105],ch[105];//ch是中转字符串,用于更新S1
while(cin>>s1>>s2)
{
int lens1=strlen(s1);
int lens2=strlen(s2);
int len=lens1;
while(1)
{
int flag=1;//判断是否有删除操作
lens1=strlen(s1);
memset(ch,0,sizeof(ch));
for(int i=0;i
关注
打赏