【牛客网】OR63 删除公共字符串

简介: 【牛客网】OR63 删除公共字符串

描述:

输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”

输入描述:

每个测试输入包含2个字符串.

输出描述:

输出删除后的字符串.

示例1:

输入:They are students.
aeiou

输出:Thy r stdnts.

题目详情:


二.题目思路

思路一:

首先,我们创建一个指针(*str),然后用该指针遍历检查整个arr1数组.

如果检查出该指针指向的字符属于arr2,则将*str后的字符逐一向前提一个字节.

如果检查出该指针指向的字符不属于arr2,则不进行任何操作,检查下一个字符.

直到遍历检查完arr1中的最后一个字符再将arr1打印出来即可.

思路图解如下:


思路二:

首先,对于在线oj题目,我们可以只专注于结果,即只要最后打印出的结果符合题目要求即可.

因此,我们可以先逐一打印第一个字符串中的内容.

然后,在打印的过程中判断该字符是否属于第二个字符串,

如果该字符属于第二个字符串,则不打印该字符,如果该字符不属于第二个字符串,则打印该字符.

思路图解如下:


三.解题代码

思路一完整解题代码:

根据上述思路,本题解题代码如下:

#include <stdio.h>
#include <string.h>
void move(char*str)
{
    char*mov=str;
    while(*(mov)!='\0')
    {
        *mov=*(mov+1);//这步结束后,str指针中存储的将会是原本它后面的那个字符,因此move后str就不用再++了
        mov++;
    }
}
 
int main()
{
    char arr1[1000]={0};
    char arr2[1000]={0};
    gets(arr1);
    gets(arr2);
    char *str=arr1;
    char *arr1init=arr1;
    while(*str!='\0')
    {
        //判断是否为arr2字符
        if(strchr(arr2,*str)!=NULL)
        {
            //*str后所有字符前移
            move(str);
        }
        else
        //str后移
        str++;
    }
    while(*arr1init!='\0')
    {
        printf("%c",*arr1init);
        arr1init++;
    }
    return 0;
}

拷贝到牛客网测试运行:

成功通过:


思路二完整解题代码:

根据上述思路,本题解题代码如下:

#include <stdio.h>
#include <string.h>
 
int main() {
    char arr1[100]={0};
    char arr2[100]={0};
    gets(arr1);
    gets(arr2);
    int i=0;
    int len=strlen(arr1);
    for(i=0;i<len;i++)
    {
        if(strchr(arr2, arr1[i])==NULL)
            printf("%c",arr1[i]);
    }
    return 0;
}

拷贝到牛客网测试运行:

成功通过:


 


相关文章
|
算法 测试技术 C++
【动态规划算法】蓝桥杯填充问题(C/C++)
【动态规划算法】蓝桥杯填充问题(C/C++)
|
11月前
HTML 表格2
本示例展示了如何使用 HTML 的 `&lt;table&gt;` 标签和 `border` 属性创建一个带有边框的简单表格。表格包含两行两列,每行有两个单元格,通过设置 `border=&quot;1&quot;` 显示边框。
|
C语言
C语言删除公共字符
C语言删除公共字符
190 0
日志规范笔记
日志规范笔记
541 0
|
XML Android开发 数据格式
Android 底部导航栏(二、自定义View+Fragment)
上一片文章用的是BottomNavigationView+Menu+Fragment,但是可能有时候需求不一样,menu的样式不太够,所以需要自定义View来实现。
|
存储 SQL 算法
MySQL索引从基础到原理,看这一篇就够了
MySQL索引从基础到原理,看这一篇就够了
15513 4
MySQL索引从基础到原理,看这一篇就够了
|
Java 容器 Spring
spring之bean的作用域scope的值的详解
今天研究了一下scope的作用域。默认是单例模式,即 scope="singleton"。另外scope还有prototype、request、session、global session作用域。scope="prototype"多例。
1556 0
|
Perl
弧长估计
设 $f:[0,1]\to [0,1]$ 是 $C^2$ 函数, $f(0)=f(1)=0$, 且 $f''(x)
700 0
Uva 673 Parentheses Balance
点击打开链接 解题思路:我们知道括号如果要完全匹配,那么左括号数等于右括号数,那么我们可以用一个栈来做,遇到左括号(“(” ,“]”)就压入,如果下一个符号刚好为栈顶元素那么就清除栈顶元素 注意:如果遇到最后只有一个括号,那么只能入栈。
706 0

热门文章

最新文章