2017-10-02 1 views
-3

Ich bin neu in der Programmierung und Java. Ich lerne immer noch Java. Ich war die Lösung eine Krypta (in Java), die mit den Einschränkungen unter mir zur Verfügung gestellt wurde:Wie die folgende Krypta zu decodieren

Eingang: wrien

Ausgang: erwin

Wie die Krypta codiert wird: Entfernen Sie die Median Buchstaben des Wortes bilden das ursprüngliche Wort und fügen Sie es an das Ende des Wortes, bis es keine Buchstaben mehr gibt. Es gibt noch eine Bedingung Wenn die Wortlänge gerade ist, dann ist der linke Buchstabe des Median gewählt.

Im obigen Fall ‚w‘ ist der Median des String, so dass es am Beginn usw. angehängt wird.

ich schaffte es irgendwie, die String zu kodieren das heißt umgewandelt erwin zu wrien aber ich bin nicht in der Lage, sie zu entschlüsseln. Ich habe verschiedene Wege ausprobiert, aber sie gingen in die richtige Richtung. Hier ist, was ich versuchte: [EDITED NACH @ Talex Antwort]

String temp = ""; 
    int i = 0; 
    if(text.length() % 2 != 0){ 
    while(i < text.length()){ 
     if((i + 1) % 2 == 0) 
      temp = text.charAt(i) + temp; 
     else 
      temp = temp + text.charAt(i); 

     i++; 
    } 
    System.out.println(temp); 
    } 
    else{//Here it is failing } 

Bitten mir helfen, zu verstehen, die Gruft zu dekodieren (Ich bin ein Anfänger in der Programmierung so entschuldigen, wenn Frage nicht bis zu den Standards ist aber ich stehe total auf dem Problem fest).

Danke

+1

1) Zuerst sagen Sie: "den Median Brief entfernen [...] und fügen Sie es bis zum Ende". Aber dann sagst du auch: "'w' ist der Median [...] also ist er am Anfang angehängt". Also, was ist die genaue Anforderung? 2) Sie haben uns keinen Code mit einer Erklärung gezeigt, wo genau Sie in Ihrem Code steckten. An dieser Stelle ist Ihre Frage sowohl unklar als auch zu weit gefasst. – Seelenvirtuose

+0

Was genau haben Sie versucht (Code)? Vielleicht können wir Ihre Fehler aufzeigen. – arminb

+0

@Seenlenvirtuose das ist, was mir zur Verfügung gestellt wurde, und ich musste den Code zu kodieren und zu decodieren.Ich konnte die Zeichenfolge codieren, aber nicht in der Lage, es zu decodieren. Also habe ich beide Wege erwähnt. Und ich erwähnte, dass ich nur die Logik wissen will, um es zu entschlüsseln – NiruADV

Antwort

4

Get temporäre Variable und initialisiert es mit leeren String zurück.

für jeden Buchstaben:

  • sogar Brief prepend zu Temp-String.
  • ungeraden Buchstaben an temporäre Zeichenfolge anhängen.

-Code-Schnipsel:

String tmp = ""; 
bool flag = true; 
for(char c : input.toCharArray()) { 
    if(flag) { 
     tmp = c + tmp; 
    } else { 
     tmp = tmp + c; 
    } 
    flag = !flag; 
} 
+0

Danke @Talex. Nur eine Frage, wie ** ich den Temp-String ** voranstellen kann, wie Sie es in Java erwähnt haben. Ich bin immer noch ein Anfänger in Java so leid für das – NiruADV

+2

Prepend: temp = x + temp; Anhängen: Temp = Temp + X; – arminb

+0

Danke! arminb Ich werde diese Lösung versuchen – NiruADV