-
Pythonで正方形(1つの色付きセル)を2つの等しい部分に分割できるかどうかを確認します
サイズがnの正方形が提供されているとします。 nサイズの正方形はさらにn2個の小さい正方形に分割されます。小さい方の正方形は単位サイズで、正方形の1つは独自の色で着色されています。 ここで、大きな正方形を2つの等しい部分に切断する場合、切断線がその独特の色の小さな正方形と共通の点を持たないように切断する必要があります。また、新しくカットされた2つのピースが互いに鏡像であるという事実も考慮する必要があります。ですから、そのような正方形を切ることが条件を考えれば可能かどうかを見極める必要があります。 nの値と、大きい方の正方形の色付きの正方形の位置があります。 したがって、入力がsize =5
-
Pythonで絶対差がKsになるように、配列を2つのサブ配列に分割できるかどうかを確認します
整数を含む配列「input_list」が提供されているとします。私たちに与えられた問題は、与えられた配列が2つの半分に分割できるかどうかを確認することです。ここで、2つの半分の合計の差は数値nに等しくなります。番号nは事前に提供されます。 したがって、入力がinput_list =[9,2,5,6]、n =0の場合、出力は「可能」になります。 これを解決するには、次の手順に従います- list_total:=input_listの値の合計 if(list_total --n)mod 2が1と同じ場合、 「不可能」を返す val:=(list_total --n)/ 2 te
-
Pythonで1回のスワップで配列を並べ替えることができるかどうかを確認します
整数要素を含む配列が提供されているとします。スワップ操作を1つしか実行できない場合、配列内の値を降順ではない順序で並べ替えることができるかどうかを確認する必要があります。可能であれば、それは可能であると言いますが、そうでない場合は不可能です。 したがって、入力がinput_list =[7、8、12、10、11、9]のようである場合、出力は「実行可能」になります これを解決するには、次の手順に従います- temp_list:=リストinput_listのコピー リストtemp_listを並べ替える swap_count:=0 0からinput_listのサイズまでの範囲のiの場合
-
Pythonで許可されている重複を含む連続した整数が配列に含まれているかどうかを確認します
numsと呼ばれる数値の配列があるとすると、要素が重複している可能性があります。連続した数字のセットかどうかを確認する必要があります。 したがって、入力がnums =[6、8、8、3、3、3、5、4、4、7]のような場合、要素は3、4、5、6、7であるため、出力はtrueになります。 、8。 これを解決するには、次の手順に従います- リスト番号を並べ替える 範囲1からnums-1のサイズのiの場合、do 1の場合、 Falseを返す Trueを返す 理解を深めるために、次の実装を見てみましょう- 例 def solve(nums): nums.s
-
Pythonで配列要素が連続しているかどうかを確認します
numsと呼ばれる数値の配列があるとします。連続した値が含まれているかどうかを確認する必要があります。 したがって、入力がnums =[6、8、3、5、4、7]のような場合、要素は3、4、5、6、7、8であるため、出力はtrueになります。 これを解決するには、次の手順に従います- numsのサイズが1未満の場合、 Falseを返す min_val:=最小数、max_val:=最大数 (max_val --min_val + 1)がnumsのサイズと同じである場合、 0からnumsのサイズの範囲のiの場合は、 nums [i] <0の場合、 j:=-nums [i] --m
-
Pythonで配列要素がO(n)時間とO(1)空間で連続しているかどうかを確認します(正の数と負の数の両方を処理します)
numsと呼ばれるソートされていない数値の配列があるとします。連続した値が含まれているかどうかを確認する必要があります。負の数もサポートする必要があります。 したがって、入力がnums =[-3、5、1、-2、-1、0、2、4、3]のような場合、要素は3、4、5、6であるため、出力はtrueになります。 7、8。 これを解決するには、次の手順に従います- size:=numsのサイズ init_term:=inf 0からサイズの範囲のiの場合は、 nums [i]
-
Pythonでの3回の操作で配列の合計をKにできるかどうかを確認します
numsと呼ばれる数値のリストがあり、正の値Kもあるとします。これらの3つの演算のいずれかをnums-に対して実行できます。 1つの数値を負にする 番号自体に番号のインデックス(インデックス1から開始)を追加します 番号自体から番号のインデックスを引きます。 最後に、各要素に対してこれらの操作を1回だけ実行することにより、配列の合計がkになるときに、指定された配列を変換できるかどうかを確認する必要があります。 したがって、入力がnums =[1,2,3,7] k =8の場合、出力はTrueになります。これは、2と3から2と3のインデックスを減算して、[1、0、 0、7]なので、合計は8
-
数値の2進表現がPythonの回文であるかどうかを確認します
数nがあるとします。 nのバイナリ表現が回文であるかどうかを確認する必要があります。 したがって、入力がn =9の場合、9のバイナリ表現が1001であるため、出力はTrueになります。これは回文です。 これを解決するには、次の手順に従います- ans:=0 0の場合、do ans:=ans * 2 numが奇数の場合、 ans:=ans XOR 1 num:=num / 2 回答を返す 理解を深めるために、次の実装を見てみましょう- 例 def reverse_binary(num) : ans = 0  
-
2つの数値のバイナリ表現がPythonのアナグラムであるかどうかを確認します
xとyの2つの数値があるとすると、xとyの2進表現が互いにアナグラムであるかどうかを確認する必要があります。 したがって、入力がx =9 y =12の場合、9のバイナリ表現は1001、12のバイナリ表現は1100であるため、出力はTrueになります。したがって、これら2つは互いにアナグラムです。 これを解決するには、次の手順に従います- xとyの1の数が同じである場合、 Trueを返す Falseを返す 理解を深めるために、次の実装を見てみましょう- 例 def set_bit_count(num) : cnt = 0 whi
-
PythonでDFAを使用して、バイナリ文字列が3の倍数であるかどうかを確認します
任意の数のバイナリ表現を表す配列nがあるとします。 Deterministic Finite Automata DFAを使用して、そのバイナリ表現が3で割り切れるかどうかを確認する必要があります。 したがって、入力がn =[1、1、0、0](12のバイナリ)のような場合、出力はTrueになります。 これを解決するために、以下のようにDFAを構築できます- 数値が3で割り切れる場合、余りは0になり、そうでない場合、余りは1または2になります。これらの3つの余りには、3つの状態があります。余りが0の場合、数値が除算可能であることを意味するため、初期状態も最終状態です。 これを解決する
-
Pythonで2つの数値のLからRの範囲のビットが互いに補完的であるかどうかを確認します
xとyの2つの数値と、指定された範囲(左、右)があるとします。与えられた両方の数値の左から右の範囲のすべてのビットが互いに補完的であるかどうかを確認する必要があります。右から左に向かって、最下位ビットが最初の位置にあると見なされることに注意する必要があります。 したがって、入力がx =41 y =54 left =2 right =5の場合、41と54のバイナリ表現は101001と110110であるため、出力はTrueになります。xとyの範囲2〜5のビット互いに補完し合う「1001」と「0110」です。 これを解決するには、次の手順に従います- temp:=x XOR y temp
-
Pythonで、数値のビットに連続したセットビットの数が昇順で含まれているかどうかを確認します
正の数nがあるとすると、与えられた数nのビットパターンで、連続する1の数が左から右に増加しているかどうかを確認する必要があります。 したがって、入力がn =1775の場合、nのバイナリ表現は11011101111であるため、出力はTrueになります。したがって、連続する1の数は[2、3、4]であり、増加しています。 これを解決するには、次の手順に従います- bits_pattern:=nのビットの新しいリスト bit_count:=bits_patternのサイズ p_cnt:=0、c_cnt:=0 i:=0 i
-
PythonでサブセットのビットごとのANDが2の累乗であるかどうかを確認します
numsと呼ばれる数値の配列があるとします。ビット単位のANDが2の累乗であるnumのサブセットが存在するかどうかを確認する必要があります。 したがって、入力がnums =[22、25、9]のような場合、出力はTrueになります。サブセット{22、9}として、バイナリ形式は{10110、1001}であり、これら2つのANDは10000=16です。これは2の累乗です。 これを解決するには、次の手順に従います- MAX:=最大で32ビットの数値があることを考慮して32 関数solve()を定義します。これには数がかかります numsのサイズが1の場合、 nums [0]が2の累乗の場
-
文字列の両方の半分がPythonで少なくとも1つの異なる文字を持っているかどうかを確認します
小文字の文字列があるとします。文字列を中央から分割できるかどうかを確認する必要があります。これにより、2つの辺の間に少なくとも1文字の違いがある2つの半分が得られます。異なる文字または各文字の異なる頻度を保持する場合があります。文字列が奇数の長さの文字列である場合は、中央の要素を無視して、残りの要素を確認してください。 したがって、入力がs =helloohekkの場合、出力は helloohekkとしてTrueになるため、左側は hello、右側は ohekk、左右は異なります。 これを解決するには、次の手順に従います- left_freq:=空のマップ right_freq:=空
-
特定の文字列の文字を再配置して、Pythonで回文を形成できるかどうかを確認します
文字列sがあるとすると、指定された文字列の文字をシャッフルして回文を作成できるかどうかを確認する必要があります。 したがって、入力がs =raaecrcのような場合、これを回文である racecarに再配置できるため、出力はTrueになります。 これを解決するには、次の手順に従います- freq:=すべての文字とその頻度をsに格納するためのマップ odd_count:=0 freqのすべての値のリストにある各要素iについて、を実行します。 iが奇数の場合、 odd_count:=odd_count + 1 1の場合、 Falseを返す Trueを返す 理解
-
Pythonで1つの文字列の文字を交換して別の文字列を形成できるかどうかを確認します
2つの文字列sとtがあるとすると、sの文字を交換してtを生成できるかどうかを確認する必要があります。 したがって、入力がs =worldlloeh t =helloworldの場合、「worldlloeh」から文字を交換して「helloworld」を作成できるため、出力はTrueになります。 これを解決するには、次の手順に従います- s_len:=sのサイズ、t_len:=tのサイズ s_lenがt_lenと同じでない場合、 Falseを返す freq:=すべての文字とその頻度をsに格納するためのマップ 0からt_lenの範囲のiの場合、実行 freq [t [i]]:=f
-
Pythonで2つの文字列の連結のバランスが取れているかどうかを確認します
これらの文字(および)のみを含む2つのブラケットシーケンスsおよびtがあるとします。 sとtの連結文字列のバランスが取れているかどうかを確認する必要があります。連結はs|によって行うことができます。 tまたはt| s。 したがって、入力がs =()()))、t =()(()(の場合、t | sを連結すると、 ()が得られるため、出力はTrueになります。 (()(()()))」、バランスが取れています。 これを解決するには、次の手順に従います- 関数is_balanced_parenthesis()を定義します。これには文字列が必要です スタック:=新しいリスト 0から文字列のサイ
-
Pythonで除数の数が偶数か奇数かを確認します
数がnであるとすると、除数の総数が偶数または奇数であることを確認する必要があります。 したがって、入力がn =75の場合、除数が[1、3、5、15、25、75]であるため、出力は偶数になります。 これを解決するために、1つのシンプルで効率的なアプローチに従います。数が完全な平方である場合、それだけが奇数の約数を持つことを観察しました。したがって、数が完全な平方でない場合は、除数さえあります。したがって、ここでは、数値が完全な平方であるかどうかのみを確認し、これに基づいて、出力として「奇数」または「偶数」を返すことができます。 これを解決するには、次の手順に従います- n <1がゼロ以
-
Pythonで8進数の10進数表現が7で割り切れるかどうかを確認します
1つの8進数があるとします。指定された8進数の10進表現が7で割り切れるかどうかを確認する必要があります。 したがって、入力がn =61のような場合、61の10進表現は6 * 8 + 1 =48 + 1 =49であり、7で割り切れるので、出力はTrueになります。したがって、入力がn=のような場合61の場合、61の10進表現は6 * 8 + 1 =48 + 1 =49であり、7で割り切れるため、出力はTrueになります。 これを解決するには、次の手順に従います- 合計:=0 numがゼロ以外の場合は、 sum:=sum +(num mod 10) num:=(num / 10)の
-
Pythonで2つの正方形の面積の差が素数であるかどうかを確認します
xとyの2つの数があるとします。それらの領域の違いが素数であるかどうかを確認する必要があります。 したがって、入力がx =7、y =6のような場合、それらの二乗の差は49-36 =13であり、素数であるため、出力はTrueになります。 これを解決するには、次の手順に従います- (x + y)が素数で、(x --y)が1の場合、 Trueを返す それ以外の場合、 Falseを返す 理解を深めるために、次の実装を見てみましょう- 例 def is_prime(num) : if num <= 1 : ret