[JAVA] J'ai essayé de résoudre le problème de Google Tech Dev Guide

introduction

Comme je résolvais des problèmes dans le guide des développeurs Google Tech pendant la formation, Notez ce que vous pensez. Problème résolu cette fois

problème

Lors de l'extrait de l'énoncé du problème

Given a string, return the sum of the numbers appearing in the string, ignoring all other characters. A number is a series of 1 or more digit chars in a row. (Note: Character.isDigit(char) tests if a char is one of the chars '0', '1', .. '9'. Integer.parseInt(string) converts a string to an int.)

Et cela. En résumé, il dit: "Retirez uniquement les nombres de la chaîne reçue et ajoutez-les." Je pense que c'est difficile à comprendre si ce ne sont que des phrases, Il semble que la sortie devrait être la suivante (implémenter la méthode sumNumbers)

sumNumbers("abc123xyz") → 123 sumNumbers("aa11b33") → 44 sumNumbers("7 11") → 18

Comme vous pouvez le voir sur le ↑, S'il y a une chaîne ou un espace entre les nombres, vous devez ajouter chaque nombre.

J'ai essayé de le résoudre à la fois

Tout d'abord, j'ai identifié les éléments qui peuvent être inclus dans la chaîne de caractères.

Sur la base de ce qui précède, nous avons adopté l'approche suivante cette fois.

  1. Convertissez tous les éléments non numériques en éléments vides
  2. Stocker dans un tableau séparé par des espaces
  3. Ajoutez tous les éléments sauf vides dans le tableau

Le code final ressemble à ceci:

sample.java


class Test1{
  public static void main(String args[]){
    //Pour le contrôle de fonctionnement
    System.out.println(sumNumbers("abc123xyz"));
    System.out.println(sumNumbers("aa11b33"));
    System.out.println(sumNumbers("7 11"));
  }
  public static int sumNumbers(String str) {
    // 1.Convertir tout sauf les nombres en espaces demi-largeur
    String buf = str.replaceAll("[^0-9]", " ");
    // 2.Stocker dans un tableau séparé par des espaces
    String list[] = buf.split(" ");
    int sum = 0;

    // 3.Ajouter tous les éléments sauf vides dans le tableau
    for(int i = 0; i < list.length; i++){
      if (!(list[i].isEmpty())){
        sum = sum + Integer.parseInt(list[i]);
      }
    }
    return sum;
  }
}

Si vous avez quelque chose comme "Je devrais faire ça plus!", J'aimerais avoir de vos nouvelles!

prime

J'écris généralement en Ruby, j'ai donc essayé de le résoudre également en Ruby.

sample.rb


def sumNumbers(str)
  str.gsub(/[^0-9]/," ")
     .split(" ")
     .compact
     .reject(&:empty?)
     .sum{|v| v.to_i}
end
#Pour le contrôle de fonctionnement
puts sumNumbers("abc123xyz")
puts sumNumbers("aa11b33")
puts sumNumbers("7 11")

Avec ruby, vous pouvez écrire en utilisant une chaîne de méthodes, donc c'est amusant!

Recommended Posts

J'ai essayé de résoudre le problème de Google Tech Dev Guide
J'ai essayé de résoudre le problème de la "sélection multi-étapes" avec Ruby
J'ai essayé de résoudre le problème de la campagne paiza "Challenge from Phantom Thief 813"
J'ai essayé de résoudre le problème de la machine à karaoké Ruby (il y a un exemple de réponse)
J'ai essayé de résoudre le problème de la boisson bonus Ruby (il y a un exemple de réponse)
[Java] J'ai essayé de résoudre le problème de rang B de Paiza
J'ai essayé de résoudre le problème de la séquence Tribonacci en Ruby (temps limite 10 minutes)
05. J'ai essayé de supprimer la source de Spring Boot
J'ai essayé de réduire la capacité de Spring Boot
J'ai brièvement résumé la grammaire de base de Ruby
J'ai essayé de créer un environnement de WSL2 + Docker + VSCode
J'ai essayé d'expliquer la méthode
J'ai essayé de créer un environnement de serveur UML Plant avec Docker
J'ai essayé de vérifier le fonctionnement du serveur gRPC avec grpcurl
J'ai essayé de résumer les méthodes de Java String et StringBuilder
J'ai essayé de résoudre la recherche binaire d'AOJ
J'ai essayé d'implémenter le modèle Iterator
J'ai essayé de résumer les points clés de la conception et du développement de gRPC
J'ai essayé d'utiliser pleinement le cœur du processeur avec Ruby
J'ai essayé de visualiser l'accès de Lambda → Athena avec AWS X-Ray
J'ai essayé de mesurer et de comparer la vitesse de Graal VM avec JMH
J'ai essayé de publier l'application de mesure réflexe sur le Google Play Store
J'ai essayé de créer un exemple de programme en utilisant le problème du spécialiste des bases de données dans la conception pilotée par domaine
[Rails] J'ai essayé de faire passer la version de Rails de 5.0 à 5.2
J'ai essayé d'organiser la session en Rails
C # (base de l'encapsulation)
Je veux var_dump le contenu de l'intention
J'ai essayé de configurer tomcat pour exécuter le servlet.
[Java] Essayez de résoudre le problème de Fizz Buzz
J'ai essayé d'utiliser le profileur d'IntelliJ IDEA
Ce que j'ai essayé quand je voulais obtenir tous les champs d'un haricot
J'ai essayé de comparer la technologie d'infrastructure des ingénieurs ces jours-ci avec la cuisine.
J'ai essayé d'utiliser la fonction Server Push de Servlet 4.0
J'ai essayé de vérifier le fonctionnement de la requête http (Put) avec Talented API Tester
J'étais accro au record du modèle associé
Je veux connaître la réponse de l'application Janken
J'ai essayé de résoudre Small, Large ou Equal d'AOJ
Je souhaite afficher le nom de l'affiche du commentaire
J'ai essayé d'étudier le mécanisme d'Emscripten en l'utilisant avec un solveur allemand
J'ai essayé d'implémenter la méthode de division mutuelle d'Eugrid en Java
Je veux retourner la position de défilement de UITableView!
Je ne comprenais pas le tri topologique, alors je l'ai recherché et mis en œuvre dans BFS, puis j'ai essayé de résoudre le problème d'AtCoder.
J'ai fini de regarder les roses de Versailles, alors j'ai essayé de reproduire la chanson de fin en Java
J'ai essayé de convertir l'exemple d'application en microservice selon l'idée du livre "Microservice Architecture".
Puisque la lecture de JdbcCodeList de TERASOLUNA est lente, j'ai essayé d'enregistrer plusieurs à la fois.
J'ai essayé de toucher l'application de gestion d'actifs en utilisant l'émulateur du grand livre distribué Scalar DLT
[Pour les débutants Swift] J'ai essayé de résumer le cycle de mise en page désordonné de ViewController et View
J'ai essayé de développer la fonction de cache d'Application Container Cloud Service dans l'environnement local
J'ai essayé d'implémenter la fonction similaire par communication asynchrone
J'ai essayé de collecter et de résoudre les problèmes liés à la «classe» de Ruby.
[JDBC] J'ai essayé d'accéder à la base de données SQLite3 depuis Java.