diff --git a/.gitignore b/.gitignore index b694934..0e5ac79 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ -.venv \ No newline at end of file +.venv +__pycache__ \ No newline at end of file diff --git a/accepted/accepted_medium.py b/accepted/accepted_medium.py index 4af5959..10d5419 100644 --- a/accepted/accepted_medium.py +++ b/accepted/accepted_medium.py @@ -39,4 +39,42 @@ class AcceptedMedium: l2.append(i+s) l = l2.copy() l2 = [] - return [] if l[0] == '' else l \ No newline at end of file + return [] if l[0] == '' else l + + def convert_linear_str_to_zigzag(s: str, numRows: int) -> str: + # sourcery skip: use-contextlib-suppress + """ + Link: https://leetcode.com/problems/zigzag-conversion/ + Runtime: 72 ms + """ + len_s = len(s) + if len_s < 3 or numRows == 1: return s + def x(l, t): + if len(l) < t: + l.append(None) + x(l, t) + return l + l = [] + t = 0 + while t < len_s: + l.append(list(s[t:numRows+t])) + t += numRows + l.append(list(reversed(x(list(s[t:numRows-2+t]), numRows-2)))) + t += numRows-2 + l = l[:-1] if l[-1] == [] else l + len_l = len(l) + s1 = '' + s2 = '' + s3 = '' + t = len(l[0]) - 2 + for i in range(0, len_l, 2): + s1 += l[i].pop(0) + try:s3 += l[i].pop(t) + except IndexError: pass + for i in range(len(l[0])): + for j in range(len_l): + try: + if l[j][i] is not None: + s2 += l[j][i] + except IndexError: pass + return s1 + s2 + s3 \ No newline at end of file diff --git a/accepted_refused.py b/accepted_refused.py index e7809d6..2da48de 100644 --- a/accepted_refused.py +++ b/accepted_refused.py @@ -1,7 +1,7 @@ -from .accepted import (AcceptedEasy, +from accepted import (AcceptedEasy, AcceptedMedium, AcceptedHard) -from .refused import (RefusedEasy, +from refused import (RefusedEasy, RefusedMedium, RefusedHard) diff --git a/solution.ipynb b/solution.ipynb index e69de29..590a132 100644 --- a/solution.ipynb +++ b/solution.ipynb @@ -0,0 +1,38 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3.10.4 ('.venv': venv)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.4" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "79627d5650bbce6f1015448354c1d381e95e649e055f8bf31e4d4215309d4a32" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}