您当前的位置: 首页 > 

MangataTS

暂无认证

  • 0浏览

    0关注

    423博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

SWPUACM第一届程序设计大赛

MangataTS 发布时间:2022-02-07 15:34:10 ,浏览量:0

文章目录
  • A 简单的字符串处理
  • B 多米诺骨牌
  • C 翻转棋
  • D 多次方程求解
  • E 约瑟夫升级
  • F 字符画打印,很简单哒
  • G 黄金矿工
  • H 天之杯

A 简单的字符串处理

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            
关注
打赏
1665836431
查看更多评论
0.0483s