LeetcodeとかアメリカIT企業のコーディングテストのレベル

ずっと思ってるのが、atcoderは一定レベル以上からプログラミングとは関係なく、意味不明な数え上げやmod計算、xorなどが出てくる。 SAPIXあたりに魂の元がある算数パズルと揶揄されているだけあって、アルゴリズム習得の邪魔にもなったりする。典型問題を徹底的に嫌うので、常識的なレート(水色くらいまで)では、ダイクストラ法などはめったに出ない。

ンメリカIT企業のコーディングテストに使われる問題を集めたLeetcodeだとHardでもABCでCくらいで、ワテもatcoderはC,酷いときはBまで解ければ一般的なプログラミングには十分と感じている(ちなみに当方緑)。

Reverse Nodes in k-Group leetcode.com

linkedリスト(なぜかクラスで表現している)をKの範囲で反転させる。リンクを付け替える方が正統だと思うけど楽なのでvalを書き換える。 これでハード。atcoderだと300点、paizaだとAくらい。

class Solution:
    def reverseKGroup(self, head: Optional[ListNode], k: int) -> Optional[ListNode]:
        
        p=head
        s=0
        x=[]
        N=0
        for i in range(10000):
            x.append(p.val)
            p=p.next
            N+=1
            if p==None:
                break
        p=head
        s=N//k
        for i in range(10000):
            if i>=k*s:
                break
            m=i%k
            ib=k*int(i//k)
            p.val=x[ib+k-m-1]
            p=p.next
            if p==None:
                break

        return head