EOJ 3292 解密字串(排序)

2021-08-07 23:24:55 字數 2056 閱讀 4000

題意:為防止洩密,將數碼0到9用全大寫的英文單詞表示並將所有字母打亂。密碼114表示為oneonefour,或ourneonfoe,fooonneeru等。

給定乙個大寫字母表示的字串,要求算出原來的數字表示的密碼(非遞減)。

0-9對應的大寫英文單詞:

zero, one,two, three, four, five,six, seven, eight, nine

通過觀察,有些單詞具有唯一的表示字母,如zero的z,two的w,six的x,那麼這幾個數字就可以輕易篩出來。

首先記錄每個字母出現的個數,之後每當能發現乙個數字對應的字母時,就將這些字母的計數值減1。先篩出上述的幾個具有明顯標識的,然後看剩下的字母裡有哪些足以代表乙個數字,一步步篩出所有數字。

#include 

using

namespace

std;

int cnt[100]; //直接用大寫的ascii碼做下標,方便索引

vector

ans; //存放結果

int main()

//6---six

t = cnt['x'];

for (int i = 0; i's']--; cnt['i']--; cnt['x']--;

ans.push_back(6);

}//7---seven

t = cnt['s'];

for (int i = 0; i's']--; cnt['e']--; cnt['v']--; cnt['e']--;cnt['n']--;

ans.push_back(7);

}//5---five

t = cnt['v'];

for (int i = 0; i'f']--; cnt['i']--; cnt['v']--; cnt['e']--;

ans.push_back(5);

}

//2---two

t = cnt['w'];

for (int i = 0; i't']--; cnt['w']--; cnt['o']--;

ans.push_back(2);

}//4---four

t = cnt['f'];

for (int i = 0; i'f']--; cnt['o']--; cnt['u']--; cnt['r']--;

ans.push_back(4);

}//3---three

t = cnt['r'];

for (int i = 0; i't']--; cnt['h']--; cnt['r']--; cnt['e']--;cnt['e']--;

ans.push_back(3);

}//1---one

t = cnt['o'];

for (int i = 0; i'o']--; cnt['n']--; cnt['e']--;

ans.push_back(1);

}//8---eight

t = cnt['g'];

for (int i = 0; i'e']--; cnt['i']--; cnt['g']--; cnt['h']--; cnt['t']--;

ans.push_back(8);

}//9---nine

t = cnt['i'];

for (int i = 0; i9);

sort(ans.begin(), ans.end()); //密碼是公升序的

cout

<< "case #"

<< kase << ':'

<< endl;

for (auto it = ans.begin(); it != ans.end(); ++it)

cout

<< *it;

cout

<< endl;

}return

0;}

字串加密解密

using system.security.cryptography using system.io 加密函式 static stirng encrypt string str descryptoserviceprovider descsp new descryptoserviceprovider ...

字串加解密

題目 1 對輸入的字串進行加解密,並輸出。2加密方法為 當內容是英文本母時則用該英文本母的後乙個字母替換,同時字母變換大小寫,如字母a時則替換為b 字母z時則替換為a 當內容是數字時則把該數字加1,如0替換1,1替換2,9替換0 其他字元不做變化。3 解密方法為加密的逆過程。輸入 輸入一串要加密的密...

字串加解密

題目描述 1 對輸入的字串進行加解密,並輸出。2 加密方法為 當內容是英文本母時則用該英文本母的後乙個字母替換,同時字母變換大小寫,如字母a時則替換為b 字母z時則替換為a 當內容是數字時則把該數字加1,如0替換1,1替換2,9替換0 其他字元不做變化。3 解密方法為加密的逆過程。介面描述 實現介面...