Pythonのシーザー暗号
小文字のアルファベット文字列sがあり、オフセット番号がkであるとします。 sのすべての文字を、アルファベットに沿ってさらにkの位置にある文字に置き換える必要があります。文字がaまたはzを超えてオーバーフローすると、反対側に巻き付くことに注意する必要があります。
したがって、入力が「hello」、k =3の場合、出力は「khoor」になります
これを解決するには、次の手順に従います-
-
関数shift()を定義します。これにはc
かかります -
i:=(c)のASCII-('a')のASCII
-
i:=i + k
-
i:=i mod 26
-
ASCIIから文字を返す(('a')+ iのASCII)
-
メインの方法から、次のようにします-
-
ret:=sの各文字cについて、shift(c)
を呼び出して要素のリストを作成します。 -
retを返す
理解を深めるために、次の実装を見てみましょう-
例
class Solution: def solve(self, s, k): def shift(c): i = ord(c) - ord('a') i += k i %= 26 return chr(ord('a') + i) return "".join(map(shift, s)) ob = Solution() print(ob.solve("hello", 3))
入力
"hello", 3
出力
khoor
-
Pythonのissuperset()
この記事では、Pythonでのissuperset()と、さまざまな分野でのその実装について学習します。 このメソッドは、セットBのすべての要素に引数として渡されるすべての要素セットAが含まれている場合はブール値Trueを返し、Aのすべての要素がBに存在しない場合はfalseを返します。 これは、BがAのスーパーセットである場合、それを意味します returns true; else False 例 いくつかの例を見てみましょう A = {'t','u','t','o','r','i',
-
独自のシーザー暗号エンコーダーの書き方
シーザー暗号について聞いたことがありますか ? ジュリアスシーザーはこのテクニックを使用して、敵からの秘密のメッセージを隠しました! シーザー暗号は、最も原始的な暗号化技術の1つです。 このシステムの背後にある主なアイデアは、文字を回転させることです。 x個のアルファベット上の位置 。 たとえば、x = 1の場合 、「A」は「B」になり、「C」は「D」になります。 では、これをコードでどのように実装するのでしょうか? よろしくお願いします。見た目ほど難しくはないことがわかりました。文字は数字(ASCIIコード)で表すことができるという事実を利用します。これにより、2つの数字を