Lerne und übe ABAP. In der ABAP-Übung „Anagram“ implementierst Du ein ABAP-Programm, um aus einem Wort und einer Liste von Kandidaten die Unterliste der Anagramme des gegebenen Wortes auszuwählen. Es gibt 40 geniale ABAP Übungen auf exercism. Du kannst diese Übung entweder in Deinem SAP-System ausprobieren oder Dich kostenlos auf der Plattform anmelden und die Übung absolvieren. Du kannst Dir sogar Lösungen von anderen Nutzen ansehen und dadurch Deine Lösung vergleichen.
Aufgabenstellung
Ein Anagramm ist eine Umstellung von Buchstaben, um ein neues Wort zu bilden. Wähle aus einem Wort und einer Liste von Kandidaten die Unterliste der Anagramme des gegebenen Wortes.
Bei „listen“ und einer Liste von Kandidaten wie „enlists“ „google“ „inlets“ „banana“ sollte das Programm eine Liste mit „inlets“ zurückgeben.
Beispiel Programmierung
CLASS zcl_anagram DEFINITION PUBLIC FINAL CREATE PUBLIC . PUBLIC SECTION. METHODS anagram IMPORTING input TYPE string candidates TYPE string_table RETURNING VALUE(result) TYPE string_table. METHODS sort_string IMPORTING input TYPE string RETURNING VALUE(result) TYPE string. PROTECTED SECTION. PRIVATE SECTION. ENDCLASS. CLASS zcl_anagram IMPLEMENTATION. METHOD anagram. LOOP AT candidates ASSIGNING FIELD-SYMBOL(<fs_candidate>). IF sort_string( input ) = sort_string( <fs_candidate> ) AND to_lower( input ) <> to_lower( <fs_candidate> ). APPEND <fs_candidate> TO result. ENDIF. ENDLOOP. ENDMETHOD. METHOD sort_string. DATA lt_input_letters TYPE string_table. DATA(lv_input_lower) = to_lower( input ). DATA(lv_len) = strlen( lv_input_lower ). DATA(lv_index) = 0. DO lv_len TIMES. lv_index = sy-index - 1. APPEND lv_input_lower+lv_index(1) TO lt_input_letters. ENDDO. SORT lt_input_letters. LOOP AT lt_input_letters ASSIGNING FIELD-SYMBOL(<fs_letter>). result = |{ result }{ <fs_letter> }|. ENDLOOP. ENDMETHOD. ENDCLASS.
Erklärung
Die Klasse zcl_anagram hat zwei Methoden:
- Die Methode anagram vergleicht jedes Wort im Importparameter (Tabelle) candidates mit dem Eingabewort input. Wenn das sortierte Ergebnis der beiden Wörter gleich ist und das Eingabewort nicht mit dem Vergleichswort übereinstimmt (also ein Anagramm ist), wird das Vergleichswort zum Exportparameter result hinzugefügt.
- Die Methode sort_string sortiert jeden Buchstaben des Eingabewortes input in eine interne Tabelle und gibt das sortierte Wort als Ergebnis zurück. Dabei wird das Wort in Kleinbuchstaben umgewandelt, um Groß- und Kleinschreibung zu ignorieren.
Über den Autor
Mein Name ist Andreas Geiger und ich bin ein erfahrener Senior SAP Berater. Mit mehr als 10 Jahren Berufserfahrung habe ich mehrere SAP-Projekte erfolgreich abgeschlossen und umfangreiche Kenntnisse in verschiedenen Bereichen wie SAP FI, SAP MM und ABAP erworben. Nun möchte ich mein Wissen mit Dir teilen, um Dir einen Mehrwert zu bieten und Dich bei Deiner täglichen Arbeit mit dem SAP-System zu unterstützen.
ERP UP unterstützen
Wenn Du mit ERP UP zufrieden bist, kannst Du mich gerne unterstützen. Dabei gibt es unzählige Möglichkeiten, wie Du mich einfach und schnell unterstützen kannst. Wie Du genau ERP UP unterstützen kannst, erfährst Du hier. Vielen Dank.