1. 程式人生 > 其它 >L1-011A-B(20分)

L1-011A-B(20分)

技術標籤:字串演算法資料結構

L1-011A-B(20分)

本題要求你計算A−B。不過麻煩的是,A和B都是字串 —— 即從字串A中把字串B所包含的字元全刪掉,剩下的字元組成的就是字串A−B。

輸入格式:

輸入在2行中先後給出字串A和B。兩字串的長度都不超過10​4​​,並且保證每個字串都是由可見的ASCII碼和空白字元組成,最後以換行符結束。

輸出格式:

在一行中打印出A−B的結果字串。

輸入樣例:

I love GPLT!  It's a fun game!
aeiou

輸出樣例:

I lv GPLT!  It's  fn gm!

程式碼:

#include<stdio.h>
#include<string.h>

int variable[256]={0};//Ascll碼只有128位,所以開了256位空間足夠大了。

int main ()
{
  char s1[10010],s2[10010];
  gets(s1);
  gets(s2);
  for(int i=0;i<strlen(s2);i++)//將s2中所有字元標記在variable陣列中。
  {
    variable[s2[i]]=1;
  }
  for(int i=0;i<strlen(s1);i++)//將沒有標記的字元輸出來,沒有標記說明s2中沒有此字元,所以可以直接輸出。
  {
    if(variable[s1[i]]!=1)
    {
      printf("%c",s1[i]);
    }
  }
  return 0;
}

總結:題目思路很簡單,不夠這個方法的運算時間比較長了,不是最好的,只是方法很簡單湊合可以用。