#UVa:10082-WERTYU

灆洢 2011-11-29 23:08:58

先把鍵盤打成一個陣列,這樣比較好得解。

C++(0.012)

/*******************************************************/
/* UVa 10082 WERTYU                                    */
/* Author: Maplewing [at] knightzone.studio            */
/* Version: 2018/06/02                                 */
/*******************************************************/
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

int main(){
  const char keyboard[] = " `1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./";
  const int kblen = strlen(keyboard);
  char hash[256];
  string s;

  for(int i = 0 ; i < 256 ; ++i){
    hash[i] = i;
  }

  for( int i = 2 ; i < kblen ; ++i ){
    hash[keyboard[i]] = keyboard[i-1];
  }

  while(getline(cin, s)){
    for(int i = 0 ; i < s.length() ; i++){
      printf( "%c", hash[s[i]] );
    }
    printf( "\n" );
  }

  return 0;
}

在〈“#UVa:10082-WERTYU”〉中有 2 則留言

  1. common_man表示:

    你好~我是路人,我發現你的程式碼測試出來有錯誤!
    題目要求打某個鍵便輸出右邊的鍵,但是似乎不成功。
    或許跟這篇的解法 https://knightzone.studio/?p=1256 比較相近。

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料