-
Notifications
You must be signed in to change notification settings - Fork 1
/
caesar.cpp
43 lines (39 loc) · 909 Bytes
/
caesar.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <map>
#include <set>
#include <list>
#include <cmath>
#include <ctime>
#include <deque>
#include <queue>
#include <stack>
#include <string>
#include <bitset>
#include <cstdio>
#include <limits>
#include <vector>
#include <climits>
#include <cstring>
#include <cstdlib>
#include <fstream>
#include <numeric>
#include <sstream>
#include <iostream>
#include <algorithm>
#include <unordered_map>
using namespace std;
// https://www.hackerrank.com/challenges/caesar-cipher-1
// characters modular moving problem
int main(){
int length, shift;
string text;
cin >> length >> text >> shift;
for (char & c : text) // iterate all characters
{
if (isalpha(c)) {
int offset = islower(c) ? 'a' :'A'; // offset starts from 'a' = 97 or 'A' = 65
c = ((c-offset + shift) % 26) + offset;
}
}
cout << text << endl;
return 0;
}