ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

PAT1050 String Subtraction (20分) 用数组即可

2020-07-03 19:39:28  阅读:213  来源: 互联网

标签:字符 20 String int s2 s1 flag Subtraction string


题目

Given two strings S​1​​ and S​2​​ , S=S​1​​ −S​2​​ is defined to be the remaining string after taking all the characters in S​2​​ from S​1​​ . Your task is simply to calculate S1​​​ −S​2​​ for any given strings. However, it might not be that simple to do it fast.

Input Specification:
Each input file contains one test case. Each case consists of two lines which gives S​1​​ and S​2​​ , respectively. The string lengths of both strings are no more than 10​4​​ . It is guaranteed that all the characters are visible ASCII codes and white space, and a new line character signals the end of a string.

Output Specification:
For each test case, print S​1​​ −S​2​​ in one line.

Sample Input:

They are students.
aeiou

Sample Output:

Thy r stdnts.

解析

  • 所谓 s1 - s2 就是从s1中去除出现在s2中的字符,输出剩余部分。

  • 所以可以逐个判断s1的字符,判断其是否在s2中出现,若未出现则输出,否则跳过即可。

  • 为了操作简单,使用一个布尔数组flag[256]ascii字符也就是0-255,所以遍历一次s2,将flag[s2[i]]设置为true即表示当前字符在s2中出现过。

代码

#include <iostream>
#include <string>
#include <string.h>
using namespace std;

int main() {
    string s1, s2;
    // 原字符串中包含空格,使用getline
    getline(cin, s1);
    getline(cin, s2);
    int len1 = s1.length(), len2 = s2.length();
    bool flag[256] = {false};
    // 在s2中出现的字符,在s1中剔除
    for (int i = 0; i < len2; ++i) flag[s2[i]] = true;
    // 逐个字符判断,若未在s2中出现则输出
    for (int i = 0; i < len1; ++ i)
        if (!flag[s1[i]]) cout << s1[i];
    return 0;
}

标签:字符,20,String,int,s2,s1,flag,Subtraction,string
来源: https://www.cnblogs.com/codervivi/p/13232322.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有