DreamJudge-1014-加密演算法

DawnTraveler發表於2024-06-11

1.題目介紹

Time Limit: 1000 ms
Memory Limit: 256 mb

編寫加密程式,加密規則為:將所有字母轉化為該字母后的第三個字母,即A->D、B->E、C->F、......、Y->B、Z->C。小寫字母同上,其他字元不做轉化。輸入任意字串,輸出加密後的結果。
例如:輸入"I love 007",輸出"L oryh 007"

輸入輸出格式

輸入描述:

輸入一行字串,長度小於100。

輸出描述:

輸出加密之後的結果。

輸入輸出樣例

輸入樣例#:

I love 007

輸出樣例#:

L oryh 007

題目來源
華南師範大學/貴州大學機試題

2.題解

2.1 自動打表 + 字串轉換

思路

手動打表太累?直接自動打表
同時注意下cin讀到空格停止,所以這裡使用getline進行讀取!!!

程式碼

#include<bits/stdc++.h>
using namespace std;
//vector<char> lowerLetters{'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
vector<char> lowerLetters(26), upperLetters(26);
int main(){
	for(char ch = 'a'; ch <= 'z'; ch++){
		lowerLetters[ch - 'a'] = ch;
		upperLetters[ch - 'a'] = ch - 32;
	}
	string str;
	getline(cin, str);
	for(char &ch: str){
		if(ch >= 'a' && ch <= 'z'){
			ch = lowerLetters[(ch - 'a' + 3) % 26];
		} else if(ch >= 'A' && ch <= 'Z'){
			ch = upperLetters[(ch - 'A' + 3) % 26];
		}
	}
	cout << str;
	return 0;
}

相關文章