PAT-L1-011. A-B
2017-08-21 15:25
399 查看
这个题目很坑,同样的算法思路,C++秒过,java怎么也超时,给跪
L1-011. A-B
时间限制100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
陈越
本题要求你计算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! java
import java.util.Scanner; public class Main{ public static void main(String args[]){ int N =10001; Scanner sc = new Scanner(System.in); String A=sc.nextLine(); StringBuffer a= new StringBuffer(A); String B=sc.nextLine(); StringBuffer b= new StringBuffer(B); sc.close(); char []res =new char ; res=a.toCharArray(); char []des =new char ; des=b.toCharArray(); System.out.println("res"+res); boolean [] asc = new boolean[128]; int deslength=a.length(); int reslength=b.length(); for(int i=0;i<deslength;i++){ int k = (int)des[i]; if(asc[k]!=true) asc[k] = true; } String str=""; for(int i=0;i<reslength;i++){ char k =res[i]; if(asc[(int)k] != true) { str+=k; } } System.out.println(str); } }
C++
#include <iostream> #include <stdio.h> #include <string.h> using namespace std; int main() { int N=10001; char res ; char des; bool asc[256]; gets(res); memset(asc,false,256*sizeof(bool)); int reslength=strlen(res); cin.get(des); while(true){ if(des=='\n')break; asc[(int)des]=true; cin.get(des); } for(int i=0;i<reslength;i++){ if(asc[(int)res[i]]==false)cout <<res[i]; } cout<<endl; return 0; }
相关文章推荐
- PAT 天梯赛 L1-011. A-B 【水】
- L1-011. A-B-PAT团体程序设计天梯赛(GPLT)
- PAT L1-011. A-B
- PAT-L1-011. A-B(字符串处理)
- PAT L1 011 A-B
- PAT练习集之20分题-L1-011. A-B
- PAT团体程序设计天梯赛L1-011 A-B
- PAT 团体程序设计天梯赛-练习集L1-011. A-B
- PAT L1-010. 比较大小
- PAT L1-017. 到底有多二
- PAT L1-019. 谁先倒
- [PAT][GPLT][CCCC]L1-020.帅到没朋友
- PAT 天梯赛 L1-036. A乘以B 【水】
- (pat)L1-2. 点赞
- PAT L1-004
- PAT L2 011 玩转树遍历 建树加BFS
- PAT L1 015 跟奥巴马一起画方块
- L1-011. A-B
- L1-028. 判断素数-PAT团体程序设计天梯赛GPLT
- L1-023. 输出GPLT-PAT团体程序设计天梯赛GPLT