本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。
输入在2行中先后给出字符串A和B。两字符串的长度都不超过104,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。
在一行中打印出A−B的结果字符串。
I love GPLT! It's a fun game! aeiou
I lv GPLT! It's fn gm!
使用C++则一处报错都没有
#include <iostream> using namespace std; int main() { string a,b; getline(cin, a); getline(cin, b); for (int i = 0; i < a.size(); ++i) { int flag=0; for (int j = 0; j < b.size(); ++j) { if(a[i]==b[j]) flag=1; } if(flag==0) cout << a[i]; } cout << endl; return 0; }
使用Java有两处超时
import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner s=new Scanner(System.in); char[] a=s.nextLine().toCharArray(); char[] b=s.nextLine().toCharArray(); char[] x=new char[a.length]; int c=0; for (int i = 0; i < a.length; i++) { int flag=0; for (int j = 0; j < b.length; j++) { if(a[i]==b[j]) flag=1; } if (flag==0){ x[c]=a[i]; c++; } } System.out.print(x); s.close(); } }