zoukankan      html  css  js  c++  java
  • 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 1. 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​​S2​​ in one line.

    Sample Input:

    They are students.
    aeiou
     

    Sample Output:

    Thy r stdnts.

    注意:考场上可能关闭快的服务器,只留慢的,所以两层for循环不保险
    两层for循环:
    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=10010;
    
    int main(){
        char s1[maxn];
        char s2[maxn];
        cin.getline(s1,maxn);
        cin.getline(s2,maxn);
        for(int i=0;s1[i]!='';i++){
            for(int j=0;s2[j]!='';j++){
                if(s1[i]==s2[j]){
                    s1[i]='0';
                }
            }
        }
        for(int i=0;s1[i]!='';i++){
            if(s1[i]!='0'){
                printf("%c",s1[i]);
            }
            else{
                continue;
            }
        }
        printf("
    ");
        return 0;
    }

    优化代码:

    #include<bits/stdc++.h>
    using namespace std;
    const int maxn=100010;
    char s1[maxn];
    char s2[maxn];
    bool flag[maxn]={false};
    int main(){
        cin.getline(s1,maxn);
        cin.getline(s2,maxn);
        int ls1=strlen(s1);
        int ls2=strlen(s2);
        for(int i=0;i<ls2;i++){
            flag[s2[i]]=true;//将字符转化为整形,作为下标存储
        }
        for(int i=0;i<ls1;i++){
            if(flag[s1[i]]==false){//相同下标下为false,则输出
                printf("%c",s1[i]);
            }
        }
        printf("
    ");
        return 0;
    }


  • 相关阅读:
    最大公约数
    面向对象(jianli)(游客买门票)
    String
    ATM模拟取款
    常用快捷键归纳
    购物清单
    jxls使用模版导出Excel
    IText 生成pdf,处理table cell列跨页缺失的问题
    Java使用IText(VM模版)导出PDF
    js ajax post提交 ie和火狐、谷歌提交的编码不一致,导致中文乱码
  • 原文地址:https://www.cnblogs.com/dreamzj/p/14364652.html
Copyright © 2011-2022 走看看