(TIS) 20210511
3658 ワード
中に入る。
このシリーズは誰かが読むと仮定するのではなく、自分を記録するために整理されていない.これから、私は絶えず問題を解決して、収穫を書きます.
質問する
プログラマー「124カ国の数字」:数字に関する問題
プログラマ「大数を作成」:
本当に痩せました資料構造に関する知識はあるが、運用する前に、いくつかの練習が必要らしい.
これはstackを運用する良い問題で、私は記録します.
ソース:プログラマ
コアは、「k」番号の数字を削除し、どのように数字を記録できるかです.
最初は復唱で問題を解いた.しかし、解いた後、無限リングの周りを回転し、性能もあまりよくありません.それからまた繰り返し解答して、しかし他の人の解答はとても良くて、持ってきて見ます.
「stack」を使いました.
def solution(number, k):
stack = [number[0]]
for num in number[1:]:
while len(stack)>0 and stack[-1] < num and k > 0:
stack.pop()
k -= 1
stack.append(num)
if k != 0:
stack = stack[:-k]
return ''.join(stack)
数字を大きくするには、一番大切なのは前の位置です.文は問題を解く核心である.kが0より大きい場合、すなわち減算可能な回数があり、今回の数字がstackの最後の数字より大きい場合は、前の数字を削除します.
またk!=まだ0文で消す機会はありますが、前にはすでに最大の組み合わせが現れています!このとき最後のk個を抜く形で行う.
-->スタックの利用可能性の問題.より多くの資料構造知識を利用してみましょう.
今日学んだこと
次のコードを使用して
import sys
sys.setrecursionlimit(10**10)
->これでは資料構造から考える能力が増すことはありません.
Reference
この問題について((TIS) 20210511), 我々は、より多くの情報をここで見つけました https://velog.io/@heyday_7/TIS-20210511テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol