Défi hebdomadaire 300
Chaque semaine, Mohammad S. Anwar envoie The Weekly Challenge, une chance pour nous tous de trouver des solutions à deux tâches hebdomadaires. Mes solutions sont d'abord écrites en Python, puis converties en Perl. C'est une excellente façon pour nous tous de pratiquer le codage.
Défi, Mes solutions
Il s'agit du trois centième défi, permettez-moi de remercier personnellement Mohammad pour tout le travail qu'il accomplit chaque semaine au nom de tous les membres de l'équipe PWC.
Tâche 1 : Bel arrangement
Tâche
Vous recevez un entier positif, $int.
Écrivez un script pour renvoyer le nombre de beaux arrangements que vous pouvez construire.
Une permutation de n entiers, indexés 1, est considérée comme un bel arrangement si pour chaque i (1
- perm[i] est divisible par i
- je est divisible par perm[i]
Ma solution
Pour cette tâche, j'utilise la fonction de permutations du module itertool pour travailler sur toutes les permutations.
Ensuite, il s'agit simplement de déterminer si cette permutation répond aux critères spécifiés. Si ce n'est pas le cas, je passe à la permutation suivante. Si c'est le cas, j'en ajoute un à la variable count.
def beautiful_arrangement(n: list) -> str: count = 0 for p in permutations(range(1, n+1)): for i in range(n): if p[i] % (i+1) != 0 and (i+1) % p[i] != 0: break else: count += 1 return count
Il existe peut-être un moyen plus efficace de calculer les résultats qui n'implique pas de force brute. Mon code deviendrait très inefficace sur des nombres plus grands. Je n'ai pas passé de temps à enquêter sur cela.
Exemples
$ ./ch-1.py 1 1 $ ./ch-1.py 2 2 $ ./ch-1.py 10 700
Tâche 2 : Tableau imbriqué
Tâche
Vous recevez un tableau d'entiers, @ints de longueur n contenant la permutation des nombres dans la plage [0, n - 1].
Écrire un script pour construire un ensemble, set[i] = ints[i], ints[ints[i]], ints[ints[ints[i]]], ..., soumis aux règles suivantes :
- Le premier élément de set[i] commence par la sélection des éléments ints[i].
- L'élément suivant dans set[i] devrait être ints[ints[i]], puis ints[ints[ints[i]]], et ainsi de suite.
- Nous arrêtons d'ajouter juste avant qu'un élément en double ne se produise dans set[i].
Ma solution
C'est relativement simple. Je commence avec une variable appelée longest_set, définie sur 0. Je parcourt ensuite chaque position de départ et je définis la liste this_set comme étant le premier élément de l'ensemble (c'est-à-dire ints[i]). Je continue d'ajouter à cet ensemble alors que ints[this_set[-1]] n'apparaît pas dans la liste this_set. Une fois cela fait, je compare la longueur de la liste this_set à la valeur longest_set. Si elle est supérieure, je mets à jour la valeur longest_set.
def nested_array(ints: list) -> int: longest_set = 0 for start in range(len(ints)): this_set = [ints[start]] while ints[this_set[-1]] not in this_set: this_set.append(ints[this_set[-1]]) if longest_set <h3> Exemples </h3> <pre class="brush:php;toolbar:false">$ ./ch-2.py 5 4 0 3 1 6 2 4 $ ./ch-2.py 0 1 2 1 $ ./ch-2.py 1 2 0 4 5 2 5
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Pythonusahybridmodelofcompilation et interprétation: 1) thepythoninterpreterCompileSourCodeIntOplatform-indépendantBytecode.2) thepythonvirtualmachine (pvm) there examenesthisbytecode, équilibrage de l'usage de la performance.

Pythonisbothinterpretedand compiled.1) il est composédToByteCodeForportabilityAcrosplatforms.2) theytecodeisthenter interprété, permettant à OrdayNamictypingAndRapidDevelopment, bien que MaybeSlowerSlowerSwower, aisance.

Forloopsareideal quand vous savez que l'immatriculation des adressages a une avance, tandis que ce qui est de savoir si

Forloopsaseesesed whenthenUmberoFitations dissownininadvance, tandis que celle-ci a été utilisé sur les éléments de la dispense

Pythonisnotpurelyinterpreted; itusahybridapproachofbytecocecompilation andruntimeinterpretation.1) pythoncompilessourcecodeintoBytecode, whichStHenexEcutedythepythonVirtualMachine (pvm) .2)

ToconcaténateListSinpythonWithTheSameElements, Utilisation: 1) L'opératorTokeEpDuplicate, 2) ASETTOREMOVEUPLICATION, OR3) ListComprehensionfor pour la réduction de la réduction de la manière dont les directives.

PythonisaninterpretedLanguage, offrant une volonté et une flexibilité de la fin

UseforloopswhenthenUmberoFitationsknowninadvance, andwhileloopswHeniterationsDepenSonacondition.1) forloopsareidealforseenceslikelistsorranges.2) whileLoopsSuitscenarioswheretheloopContiesUnUesUsUlaspecificconditMetmecemet, utilesforUSERIRSURSoralgorititititititititititititititititittorititititititittorititititititititittorititititititititittoritititititititititititititititititittitititititititititititititititititittitititititititititititititititititittitititititititititititititititititittititititititititititititititititittititet


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux

ZendStudio 13.5.1 Mac
Puissant environnement de développement intégré PHP

Listes Sec
SecLists est le compagnon ultime du testeur de sécurité. Il s'agit d'une collection de différents types de listes fréquemment utilisées lors des évaluations de sécurité, le tout en un seul endroit. SecLists contribue à rendre les tests de sécurité plus efficaces et productifs en fournissant facilement toutes les listes dont un testeur de sécurité pourrait avoir besoin. Les types de listes incluent les noms d'utilisateur, les mots de passe, les URL, les charges utiles floues, les modèles de données sensibles, les shells Web, etc. Le testeur peut simplement extraire ce référentiel sur une nouvelle machine de test et il aura accès à tous les types de listes dont il a besoin.

Version Mac de WebStorm
Outils de développement JavaScript utiles

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel
