C'est un problème simple à partir du code leet dont la description est :
Vous recevez une chaîne s. Le score d'une chaîne est défini comme la somme de la différence absolue entre les valeurs ASCII des caractères adjacents.
Renvoie le score de s.Exemple 1 :
Entrée : s = « bonjour »
Sortie : 13Explication :
Les valeurs ASCII des caractères de s sont : 'h' = 104, 'e' = 101, 'l' = 108, 'o' = 111. Ainsi, le score de s serait |104 - 101| |101 - 108| |108 - 108| |108 - 111| = 3 7 0 3 = 13.Exemple 2 :
Entrée : s = « zaz »
Sortie : 50Explication :
Les valeurs ASCII des caractères de s sont : 'z' = 122, 'a' = 97. Ainsi, le score de s serait |122 - 97| |97 - 122| = 25 25 = 50.
Contraintes :2 <= s.length <= 100
s se compose uniquement de lettres anglaises minuscules.
Il n'y a pas grand chose à faire là-dedans, vous devez essentiellement parcourir et saisir deux caractères de la chaîne et soustraire du premier au second et en obtenir l'absolu et l'ajouter dans une variable de somme.
Il est important de commencer par le deuxième index pour éviter les exceptions hors limites.
Pour obtenir un caractère ascii, vous devez essentiellement le convertir en entier et cela ferait l'affaire.
class Solution { public int scoreOfString(String s) { int sum = 0; for(int i=1;i<s.length();i++){ final int first = (int) s.charAt(i - 1); final int second = (int) s.charAt(i); sum += Math.abs(first - second); } return sum; } }
Durée d'exécution : 1 ms, plus rapide que 99,37 % des soumissions en ligne Java pour Score of a String.
Utilisation de la mémoire : 42 Mo, soit moins de 30,18 % des soumissions en ligne Java pour Score of a String.
—
C'est ça ! S'il y a autre chose à discuter, n'hésitez pas à laisser un commentaire, si j'ai raté quelque chose, faites-le-moi savoir afin que je puisse mettre à jour en conséquence.
À la prochaine publication ! :)
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!