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.
Apparemment, de nombreux ingénieurs prennent des mesures sur le site appelé LetCode.
C'est un site qui forme la puissance de l'algorithme qui peut résister au test de codage effectué au début, et c'est un chemin inévitable pour ceux qui veulent faire carrière dans une entreprise de technologie à l'étranger.
Je l'ai écrit en grand, mais je n'ai pas l'intention d'avoir une telle interview pour le moment.
Cependant, en tant qu'ingénieur informatique, il serait préférable d'avoir le même niveau de puissance d'algorithme qu'une personne, alors j'aimerais résoudre le problème de manière irrégulière et écrire la méthode que je pensais à ce moment-là sous forme de mémo.
Je le résolve avec Python3.
Table de codes Leet commençant à zéro
Dernière fois Leet Code Day 58 "20. Parentheses valides" commençant à zéro
À l'heure actuelle, je donne la priorité au moyen des 100 questions les plus appréciées. Easy a été résolu, donc si vous êtes intéressé, veuillez vous rendre à la table.
Twitter Je le fais.
1221. Split a String in Balanced Strings Le niveau de difficulté est facile.
Le problème est que la chaîne «s» est donnée, qui ne contient que «L» ou «R». Divisez une chaîne avec le même nombre de caractères dans le nombre maximum de chaînes de caractères équilibrées et renvoyez le montant maximum de la division.
Même si vous le traduisez vous-même, c'est difficile à comprendre, alors jetons un coup d'œil à un exemple pour le moment.
Input: s = "RLRRLLRLRL" Output: 4 Explanation: s can be split into "RL", "RRLL", "RL", "RL", each substring contains same number of 'L' and 'R'.
Input: s = "RLLLLRRRLR" Output: 3 Explanation: s can be split into "RL", "LLLRRR", "LR", each substring contains same number of 'L' and 'R'.
Input: s = "LLLLRRRR" Output: 1 Explanation: s can be split into "LLLLRRRR".
Input: s = "RLRRRLLRLL" Output: 2 Explanation: s can be split into "RL", "RRRLLRLL", since each substring contains an equal number of 'L' and 'R'
C'est facile à comprendre.
class Solution:
def balancedStringSplit(self, s: str) -> int:
count = 0
total = 0
for i in s:
if i == "R":
count += 1
else:
count -= 1
if count == 0:
total += 1
return total
# Runtime: 28 ms, faster than 74.00% of Python3 online submissions for Split a String in Balanced Strings.
# Memory Usage: 13.9 MB, less than 40.98% of Python3 online submissions for Split a String in Balanced Strings.
Préparez simplement deux variables et déduisez-les!
Merci pour le match.
C'est pourquoi j'ai apporté une réponse en une ligne de discussion.
class Solution:
def balancedStringSplit(self, s: str) -> int:
return list(accumulate(1 if c == "R" else -1 for c in s)).count(0)
# Runtime: 28 ms, faster than 74.00% of Python3 online submissions for Split a String in Balanced Strings.
# Memory Usage: 13.8 MB, less than 62.73% of Python3 online submissions for Split a String in Balanced Strings.
Et si j'écrivais ceci dans une véritable interview de codage? Si quoi que ce soit, le flux de conception de l'algorithme est difficile, donc cela peut ne pas être un problème. Est-il correct d'écrire la méthode longue mais sûre ci-dessus et un peu vague?
Si je le reçois, je pense que je choisirai probablement celui qui est correct. Je ne veux pas le couvrir.
Jusqu'à ici pour cette fois. Je vous remercie pour votre travail acharné!
Recommended Posts