Il semble que des tests de codage soient menés à l'étranger lors d'entretiens d'ingénieurs, et dans de nombreux cas, l'essentiel est d'implémenter des fonctions et des classes spécifiques en fonction du thème.
En guise de contre-mesure, il semble qu'un site appelé Let Code prendra des mesures.
Un site qui forme une puissance algorithmique capable de résister aux tests de codage dont on parle tôt.
Je pense qu'il vaut mieux avoir la puissance de l'algorithme d'un être humain, donc je vais résoudre le problème de manière irrégulière et écrire la méthode que j'ai pensé à ce moment-là sous forme de mémo.
Table de codes Leet commençant à zéro
Dernière fois Leet Code Day 40 commençant à zéro "114. Aplatir l'arbre binaire vers la liste liée"
En ce moment, je résous le support des 100 questions les plus appréciées J'ai résolu tout facile, donc si vous êtes intéressé, veuillez vous rendre à la table.
Twitter Je le fais.
Le problème est que si vous spécifiez une chaîne codée, concevons un algorithme qui renvoie cette chaîne décodée.
La règle de codage est k [chaîne_encodée]. La chaîne encoding_string entre crochets est répétée exactement k fois. Notez que k est garanti comme un entier positif.
Vous pouvez supposer que la chaîne d'entrée est toujours valide. Il n'y a pas d'espaces supplémentaires et les crochets sont bien formés.
De plus, on peut supposer que les données d'origine ne contiennent pas de nombres et que les nombres correspondent uniquement à ces nombres de répétition k. Par exemple, il n'y a pas d'entrée comme 3a ou 2 [4].
Un exemple est le suivant.
s = "3[a]2[bc]", return "aaabcbc". s = "3[a2[c]]", return "accaccacc". s = "2[abc]3[cd]ef", return "abcabccdcdcdef".
class Solution:
def decodeString(self, s: str) -> str:
stack,curNum,curStr = [],0,''
for st in s:
if st == "[":
stack.append(curStr)
stack.append(curNum)
curStr = ""
curNum = 0
elif st == "]":
num = stack.pop()
preStr = stack.pop()
curStr = preStr + num*curStr
elif st.isdigit():
curNum = curNum*10 + int(st)
else:
curStr += st
return curStr
# Runtime: 20 ms, faster than 98.29% of Python3 online submissions for Decode String.
# Memory Usage: 13.9 MB, less than 5.77% of Python3 online submissions for Decode String.
Je l'ai résolu en utilisant stack. J'ai léché les éléments depuis le début avec l'instruction for et modifié le traitement en fonction des éléments donnés. Cela se trouve être rapide ...
Ça fait du bien, alors cette fois, c'est ici! Je vous remercie pour votre travail acharné.
Recommended Posts