本文主要是介绍1050 String Subtraction (20 分) 字符串处理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Given two strings S1 and S2, S=S1−S2 is defined to be the remaining string after taking all the characters in S2 from S1. Your task is simply to calculate S1−S2 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 S1 and S2, 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 S1−S2in one line.
Sample Input:
They are students.
aeiou
Sample Output:
Thy r stdnts.
题意:输入两个字符串,删掉第一个字符串中在第二个字符串中出现的字符
思路:用一个长度为256的数组纪录第二个字符串中出现的字符,一个坑点就是数组长度必须最好设置成100010这么大,刚设置成10010的话只有14分,看了柳神的博客才改过来,题目要求是10的4次方就行了。。但是这个地方可能是测试系统的原因,要求长度大一点。
#include<iostream>
#include<cstdio>
#include<stack>
#include<queue>
#include<vector>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#include<set>
#include<map>using namespace std;bool flag[256] = {false};char s1[100100];
char s2[100100];int main() {cin.getline(s1,100000);cin.getline(s2,100000);int length1 = strlen(s1);int length2 = strlen(s2);for(int i = 0;i < length2;i++) {flag[s2[i]] = true;}for(int i = 0;i < length1;i++) {if(!flag[s1[i]]) {cout << s1[i];}}return 0;
}
这篇关于1050 String Subtraction (20 分) 字符串处理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!