2010年8月17日火曜日

AOJ Volume 5 Problem 0501 : Data Conversion


  1. #include <iostream>  
  2. #include <map>  
  3. using namespace std;  
  4.   
  5. int main() {  
  6.     int n;  
  7.     while (cin >> n, n) {  
  8.         map<charchar> conversion;  
  9.         map<charchar>::iterator p;  
  10.         for (int i = 0; i < n; i++) {  
  11.             char pre, post;  
  12.             cin >> pre >> post;  
  13.             conversion[pre] = post;  
  14.         }  
  15.   
  16.         cin >> n;  
  17.         for (int i = 0; i < n; i++) {  
  18.             char ch;  
  19.             cin >> ch;  
  20.             p = conversion.find(ch);  
  21.             cout << (p == conversion.end() ? ch : p->second);  
  22.         }  
  23.         cout << endl;  
  24.     }  
  25.   
  26.     return 0;  
  27. }  

mapを使ってキーが見つからない場合はマップの末尾を指す反復子を返すことを利用している.
全然,コンピュータ囲碁プログラムの話題ができなくて,テーマ変わっちゃいそうですが,今必死に考え中です・・・.

0 件のコメント:

コメントを投稿