TopCoder算法竞赛题3:SRM 147 DIV 2, 250-point
来源:互联网 发布:天下3张凯枫捏脸数据 编辑:程序博客网 时间:2024/05/29 12:24
Problem Statement
Julius Caesar used a system of cryptography, now known as Caesar Cipher, which shifted each letter 2 places further through the alphabet (e.g. 'A' shifts to 'C', 'R' shifts to 'T', etc.). At the end of the alphabet we wrap around, that is 'Y' shifts to 'A'.
We can, of course, try shifting by any number. Given an encoded text and a number of places to shift, decode it.
For example, "TOPCODER" shifted by 2 places will be encoded as "VQREQFGT". In other words, if given (quotes for clarity) "VQREQFGT" and 2 as input, you will return "TOPCODER". See example 0 below.
Definition
Class: CCipher
Method: decode
Parameters: string, int
Returns: string
Method signature: string decode(string cipherText, int shift)
(be sure your method is public)
Constraints
cipherText has between 0 to 50 characters inclusive
each character of cipherText is an uppercase letter 'A'-'Z'
shift is between 0 and 25 inclusive
Examples
0)
"VQREQFGT"
2
Returns: "TOPCODER"
1)
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
10
Returns: "QRSTUVWXYZABCDEFGHIJKLMNOP"
2)
"TOPCODER"
0
Returns: "TOPCODER"
3)
"ZWBGLZ"
25
Returns: "AXCHMA"
4)
"DBNPCBQ"
1
Returns: "CAMOBAP"
5)
"LIPPSASVPH"
4
Returns: "HELLOWORLD"
Source code
#include <iostream>
#include <iterator>
using namespace std;
class CCipher
{
public:
string decode(string cipherText, int shift)
{
string s = "";
for(int i=0; i<(int)cipherText.size(); i++)
{
char c = cipherText[i];
c = ((c-'A')-shift+26)%26 + 'A';
s += c;
}
return s;
}
};
int main()
{
ostream_iterator<char> output(cout, "");
CCipher cipher;
string str = "VQREQFGT";
string Str = cipher.decode(str,2);
copy(Str.begin(), Str.end(), output);
cout<<endl;
return 0;
}
- TopCoder算法竞赛题3:SRM 147 DIV 2, 250-point
- TopCoder算法竞赛题2:SRM 146 DIV 2, 250-point
- TopCoder算法竞赛题1:SRM 144 DIV 2, 250-point
- TopCoder算法竞赛题4:SRM 148 DIV 2, 250-point
- TopCoder算法竞赛题5:SRM 149 DIV 2, 250-point
- TopCoder算法竞赛题6:SRM 150 DIV 2, 250-point
- 【topcoder SRM 702 DIV 2 250】TestTaking
- Topcoder SRM 462 DIV 2
- topcoder srm 518 div 2
- TopCoder SRM 561 Div 2
- Topcoder SRM 565 Div.2
- Topcoder SRM 628 DIV 2
- TopCoder SRM 144 DIV 2
- SRM 668 DIV 2 VerySecureEncryption 250point
- SRM 667 DIV 2 PointDistance 250-point
- SRM 669 DIV 2 LiveConcert 250-point
- SRM 670 DIV 2 Cdgame 250-point
- Topcoder SRM 709 DIV 2 250pt Robofactory solution
- JSF的组件问题调解
- MinGW Developer Studio 用上GCC 44了
- 浅谈Oracle数据库SCN号
- Net设计模式实例之代理模式(Proxy Pattern)
- TopCoder算法竞赛题2:SRM 146 DIV 2, 250-point
- TopCoder算法竞赛题3:SRM 147 DIV 2, 250-point
- TopCoder算法竞赛题4:SRM 148 DIV 2, 250-point
- Command模式
- 循序渐进实现仿QQ界面(四):圆形按钮与工具栏自绘
- 公务员、选调生考试申论万用句型 ,想考公务员的一定要看,最好打印并背诵•••(部分公务员待遇确实很诱惑人哦•••)
- net设计模式实例之组合模式(Composite Pattern)
- 桥接器模式
- 今夜我在看电影
- 基于Hemlock的ejabberd ActionScript游戏客户端开发