PythonでHexspeak
10進数を最初に大文字の16進文字列に変換し、その後、出現するすべての数字0を文字Oに置き換えて、10進数をHexspeak表現に変換できるとします。 1と文字I。
この種の表現は、セット{"A"、 "B"、 "C"、 "D"、 "E"、 "F"、 "I"、"O"の文字のみで構成されている場合にのみ有効です。 "}。
したがって、10進整数Nを表す文字列numがあります。正しい場合は、NのHexspeak表現を見つける必要があります。そうでない場合は、「ERROR」を返します。したがって、num =“ 257”の場合、257は16進数で101であるため、出力は“ IOI”になります。
これを解決するには、次の手順に従います-
- x:=数字の16進形式
- ans:=空の文字列
- 1つの辞書を作成し、数字を入力します(10:'A'、11:'B'、12:'C'、13:'D'、14:'E'、15:'F'、1: 'I'、0:'O')
- xの各文字iについて−
- iがdの場合、ans:=ans + d [i]、それ以外の場合は「ERROR」を返します
- 回答を返す
理解を深めるために、次の実装を見てみましょう-
class Solution(object): def convertToHex(self, n): res = [] while n > 0: res.append(n % 16) n //= 16 return res[::-1] def toHexspeak(self, num): x = self.convertToHex(int(num)) ans = "" d = {10:"A", 11:"B", 12:"C", 13:"D", 14:"E", 15:"F",0:"O",1:"I"} for i in x: if i in d: ans += d[i] else: return "ERROR" return ans ob1 = Solution() print(ob1.toHexspeak("659724"))
入力
"659724"
出力
"AIIOC"
-
Pythonで文字を繰り返さない最長の部分文字列
文字列があるとします。文字を繰り返さずに最長の部分文字列を見つける必要があります。したがって、文字列が「ABCABCBB」のような場合、長さ3の繰り返しの部分文字列があるため、結果は3になります。これが「ABC」です。 これを解決するために、次の手順に従います set i:=0、j:=0、情報を保存するために1つのマップを設定します ans:=0 whilej<文字列の長さs map [s [j]]の場合、 ans:=max(ans、j – i + 1) map [s [j]]:=j それ以外の場合 i:=map [s [j]] + 1 ans:=max(ans、
-
PythonのSqrt(x)
数xがあり、xが非負数であるとします。ライブラリ関数を使用せずに、xの平方根を見つける必要があります。したがって、sqrt(x)を評価するための独自の関数を作成する必要があります。この関数では、出力の10進数が切り捨てられます。 xの値が4であるとすると、xが8の場合、結果は2になり、sqrt(8)は2.82842であるため、結果も2になります。ただし、整数部分のみを取り上げます。 これを解決するには、次の手順に従います- l =1、h =x + 1、回答=0を初期化します lの間、do mid =(h + l)/ 2 mid * mid <=xの場合、l:=mid + 1、