Veröffentlicht am 03-03-2019

Ziel

Zählen Sie für eine bestimmte Eingabezeichenfolge die zusammenhängenden Zeichen und stellen Sie sie in ganzen Zahlen dar. Wenn die fortlaufende Anzahl 1 ist, müssen Sie die Ganzzahl nicht hinzufügen.

Eingabe: "aaaaabrrr"

Ausgabe: "a5br3"

Eingabe: "aaaaaaaaaabrrraaa"

Ausgabe: "a10br3a3"

Code:
public class Antwort implementiert QuestionInterface {
@Überfahren
public String func (String str)
{
if (str == null)
null zurückgeben;
else if (str.length () == 1)
return str;
StringBuffer a = neuer StringBuffer (str);
StringBuffer b = new StringBuffer ();
char c = str.charAt (0);
String dd = null;
int count = 0, top = 0;
for (int i = 0; i
{
if (a.charAt (i) == c)
{
count + = 1;
}
sonst
{
b.append (c);
if (count! = 1)
{
dd = Integer.toString (Anzahl);
b.append (dd);
}
count = 0;
c = a.charAt (i);
ich - ;
}
}
b.append (c);
if (count! = 1) {
dd = Integer.toString (Anzahl);
b.append (dd);
}
return b.toString ();
}
}

Erläuterung:

Das Problem besteht darin, die Eingabezeichenfolge mit dem Zeichen und der Anzahl der Wiederholungen jedes Zeichens zu codieren.

Auf die Zeichenketten wird zugegriffen und die Anzahl wird für jedes Zeichen berechnet.

Die Anzahl und das Zeichen werden bis zum Ende der Zeichenfolge an die Ausgabe angehängt. Die endgültige Ausgabezeichenfolge wird als Ausgabe zurückgegeben.

Algorithmus:

  • Die zu kodierende Eingabezeichenfolge wird an die Funktion func übergeben (String str).
  • Wenn die Eingabezeichenfolge leer ist, wird ein Nullwert als Ausgabe zurückgegeben.
  • Wenn die Eingabezeichenfolge gleich eins ist, wird die ursprüngliche Zeichenfolge als Ausgabe zurückgegeben.
  • Um die Zeichenfolgen veränderbar zu machen, wird die Zeichenfolge in der Zeichenfolgenpufferklasse gespeichert.
  • Unter Verwendung der Schleifenbedingung wird die Anzahl jedes Zeichens berechnet.
  • Wenn die Anzahl größer als 1 ist, werden das Zeichen und die Anzahl an den Ausgabezeichenfolgenpuffer angehängt.
  • Wenn die Anzahl nicht größer als 1 ist, wird nur das Zeichen an den Ausgabe-Zeichenkettenpuffer angehängt.
  • Die endgültige Ausgabe wird in eine Zeichenfolge konvertiert und als Ausgabe zurückgegeben.

Fazit

Diese Probleme stammen von HackerRank.

Es existiert keine Einzellösung für ein Problem.

Arbeit am Code.

Teilen Sie Ihre Gedanken mit mir.

Wenn Sie ein Anfänger von Java sind. Hier ist ein hervorragendes Buch, mit dem Sie mit den Java-Grundlagen beginnen können, und Sie können es in nur einem Tag lernen!

Java: Lerne Java an einem Tag und lerne es gut. Java für Anfänger mit praktischem Projekt. (Lernen Sie das schnelle Kodieren mit dem praktischen Projektbuch 4).

M.A Ohen
Dies ist ein knappes, gut geschriebenes und gut organisiertes Buch. Ich wusste gar nicht, dass ich "lernte", bis ich ein Projekt programmiert hatte und es richtig machte, ohne die Interpunktion, die Rechtschreibung, die Großschreibung usw. zu überprüfen.

Es ist völlig kostenlos, wenn Sie einen Kindle Unlimited-Plan haben. Es lohnt sich, es zu lesen, wenn Sie Java auf Ihrem Handy lernen möchten und wenn Sie kein Taschenbuch mitnehmen können.

Sie können House of Codes folgen, um Updates zu erhalten, wenn wir neue Herausforderungen beim Codieren veröffentlichen. Sie können uns auch Ihre Lösungen oder Ihre Ideen für jede Codierungsherausforderung senden. Wir würden uns freuen, sie zu lesen. ;)

Urheber: Architha HarinathHerausgeber: Akshay Ravindran

Siehe auch

WENN Ruft das Herz die Königin der Herzen S6E2! SehenÜberwinde diese glänzenden Dinge und zurück zum GeschichtenerzählenDEFCON 201 Updates - Keybase, Discord & More!Faktoren, die zu berücksichtigen sind, bevor Sie einen Computer kaufenSommerhausLebensverändernde Lektionen von LinkedIn Accelerate-U Conference, San Diego