# String# Character Manipulation

a009 - 解碼器

🔗 前往 ZeroJudge 原題

題目描述

題目要求將輸入的密碼字串解密,解密方式是將每個字元的 ASCII 碼減去一個固定的值 K。題目暗示 K 的值可以從範例輸入輸出推導出來。

解題思路

觀察範例輸入輸出,可以發現密碼字元與明文字元之間存在固定的偏移量。例如,如果輸入 'h',輸出 'a',則偏移量為 'h' - 'a' = 7。因此,解密過程就是將每個密碼字元的 ASCII 碼減去 7。程式碼直接讀取輸入的字元,減去 7,然後輸出結果。

複雜度分析

  • 時間複雜度: O(n),其中 n 是輸入字串的長度。因為程式碼需要遍歷輸入字串中的每個字元。
  • 空間複雜度: O(1),程式碼只使用了常數級別的額外空間。

程式碼

#include <iostream>

using namespace std;

int main (){
	char a[1];
	while(cin >> a[0]){
		a[0]-=7;
		cout << a[0];
	}
	
}

Discussion