Das 15. Offline-Echtzeit-Schreiben eines Referenzproblems in Python

Hier klicken für Details. http://qiita.com/Nabetani/items/0b56395d4c9e7c64b230 Ich habe auf die Implementierung der C-Sprache von saihon2013 verwiesen.

def search(text, left, right, match):
    longer = match
    for l in xrange(left, len(text)):
        for r in xrange(right, l-1, -1):
            if text[l] == text[r]:
                m = search(text, l+1, r-1, match + (1 if l==r else 2))
                if m > longer: longer = m
                break
    return longer

def solve(text):
    return search(text, 0, len(text)-1, 0)

def test(text, answer):
    result = solve(text)
    print 'OK' if result==int(answer) else "NG", result, answer, text

if __name__ == '__main__':
    0, test( "I_believe_you_can_solve", "9" );
    1, test( "a", "1" );
    2, test( "aa", "2" );
    3, test( "aaa", "3" );
    4, test( "ab", "1" );
    5, test( "aabb", "2" );
    6, test( "ABBA", "4" );
    7, test( "Abba", "2" );
    8, test( "1234567890", "1" );
    9, test( "1234567890987654321", "19" );
    10, test( "abcdcba", "7" );
    11, test( "0a1b2c3d4c5b6a7", "7" );
    12, test( "abcdcba0123210", "7" );
    13, test( "abcdcba_123210", "7" );
    14, test( "_bcdcba0123210", "7" );
    15, test( "abcddcba0123210", "8" );
    16, test( "abcdcba01233210", "8" );
    17, test( "a0bc1dc2ba3210a", "9" );
    18, test( "a0bc1ddc2ba3210", "8" );
    19, test( "3a0bc1ddc2ba3210", "10" );
    20, test( "11oooo1111o1oo1o111ooooooooooo", "20" );
    21, test( "11o1111o1111oo11ooo11111ooo1oo", "20" );
    22, test( "111111oo11o111ooo1o1ooo11ooo1o", "21" );
    23, test( "11o1o1o11oo11o11oo111o1o1o11oo", "27" );
    24, test( "oo111o1o11o1oo1ooo11o1o11o1o1o", "27" );
    25, test( "1o1oo11111o1o1oo1o1o1111oo1o1o", "28" );
    26, test( "QQooooQooooQQyQoyQQQyyyyQQoyoy", "15" );
    27, test( "oQoooQooooQyoyQoyoyyyQQyQQQQoQ", "16" );
    28, test( "yyyyyooyQyyyoyyQyyooyQoQoQQoQy", "17" );
    29, test( "yyQoyQoyyQyQQoyooooyyQQyQyooQy", "24" );
    30, test( "oQQooQoQyQQoyoQQoQyQyQyQoQoooo", "24" );
    31, test( "oQQyQQyyQyQQoooyQQyyyQQQyyQQoy", "25" );
    32, test( "WAk9iHI4jVDlStyudwTNqE138kwan2", "3" );
    33, test( "c43fIu1Mlz0K9hEVOgGcUdbeB5ksa7", "3" );
    34, test( "CAbYcW5VqHjzFdIkH_61PM0TsyRuie", "3" );
    35, test( "jInQnUvSayrJTsQWujovbbqW0STvoj", "10" );
    36, test( "iZDrvpUKgtj3FrZsZ4CLjrEgUdZzQG", "11" );
    37, test( "ROgYUOu6er_DA7nB6UGquO1GUHC62R", "11" );
    38, test( "Oh_be_a_fine_girl_kiss_me", "9" );
    39, test( "8086_6502_6809_Z80", "11" );
    40, test( "xcode_visualstudio_eclipse", "11" );
    41, test( "word_excel_powerpoint_outlook", "9" );
    42, test( "abcdefghijklmnopqrstuvwxyz0123", "1" );

Recommended Posts

Das 15. Offline-Echtzeit-Schreiben eines Referenzproblems in Python
Das 14. Referenzproblem beim Schreiben in Echtzeit in Python
Das 18. Offline-Echtzeit-Schreiben eines Referenzproblems in Python
17. In Python implementiertes Referenzproblem für das Offline-Schreiben in Echtzeit
Das 16. Offline-Echtzeit-Schreiben eines Referenzproblems zur Lösung mit Python
Das 19. Offline-Echtzeit-Schreiben eines Referenzproblems zur Lösung mit Python
Das 16. Offline-Echtzeit-Schreibproblem wurde mit Python gelöst
Das 15. Offline-Problem beim Schreiben in Echtzeit wurde mit Python gelöst
Das 18. Offline-Echtzeit-Schreibproblem in Python
Das 19. Offline-Echtzeit-Schreibproblem in Python
17. Offline-Echtzeit So lösen Sie Schreibprobleme mit Python
Beim 15. Offline-Echtzeitversuch habe ich versucht, das Problem des Schreibens mit Python zu lösen
Das 14. Referenzproblem beim Offline-Schreiben in Echtzeit mit Python
Teil 1 Ich habe die Antwort auf das Referenzproblem geschrieben, wie man in Python in Echtzeit offline schreibt
13. Offline-Echtzeit So lösen Sie Schreibprobleme mit Python
Das 10. Referenzproblem beim Schreiben in Echtzeit. Implementierungsbeispiel von Python.
Offline-Echtzeit zum Schreiben eines Python-Implementierungsbeispiels für das E15-Problem
Das 11. Referenzproblem beim Schreiben in Echtzeit. Implementierungsbeispiel von Python.
Antwort auf "Offline in Echtzeit, wie man ein F02-Problem schreibt"
Antwort auf "Offline-Echtzeit, wie man ein F01-Problem schreibt"
Antwort auf "Offline-Echtzeit, wie man ein E13-Problem schreibt"
Teil 1 Ich habe ein Beispiel für die Antwort auf das Referenzproblem geschrieben, wie man in Python in Echtzeit offline schreibt
Offline-Echtzeit zum Schreiben eines E14 Python-Implementierungsbeispiels
So schreiben Sie offline in Echtzeit Lösen von E05-Problemen mit Python
Das zwölfte Offline-Echtzeit-Schreibreferenzproblem. Implementiert von Python
Wie schreibe ich Ruby to_s in Python
Offline in Echtzeit, wie man ein Implementierungsbeispiel für E11 Ruby und Python schreibt
So schreiben Sie offline in Echtzeit Lösen von E04-Problemen mit Python
Ich habe versucht, das Problem von F02 zu lösen, wie man mit Python offline in Echtzeit schreibt
Verwendung der C-Bibliothek in Python
Tipps zum Schreiben werden in Python kurz abgeflacht
So erhalten Sie die Dateien im Ordner [Python]
So schreiben Sie den richtigen Shebang in Perl-, Python- und Ruby-Skripten
So rufen Sie den n-ten größten Wert in Python ab
So erhalten Sie den Variablennamen selbst in Python
Grundlegende Informationen Schreiben Sie das Problem mit dem Herbst 2018-Algorithmus in Python
So ermitteln Sie die Anzahl der Stellen in Python
So schreiben Sie in Python die Verkettung von Zeichenfolgen in mehrere Zeilen
Wie Sie das aktuelle Verzeichnis in Python in Blender kennen
Ich möchte in Python schreiben! (3) Verwenden Sie Mock
Verwendung des in Lobe in Python erlernten Modells
Wie man in Python entwickelt
[Python] So geben Sie Listenwerte der Reihe nach aus
So schreiben Sie eine benutzerdefinierte Validierung in Django REST Framework
[Python] So überprüfen Sie, ob der Schlüssel im Wörterbuch vorhanden ist
So debuggen Sie eine Standard-Python-Bibliothek in Visual Studio
Verwendung der Methode __call__ in der Python-Klasse
[Python] Wie schreibe ich eine if-Anweisung in einen Satz?
So erhalten Sie den letzten (letzten) Wert in einer Liste in Python
[Python] Wie man PCA mit Python macht
Wie man nüchtern mit Pandas schreibt
So sammeln Sie Bilder in Python
Verwendung von SQLite in Python
Im Python-Befehl zeigt Python auf Python3.8
So erhalten Sie die Python-Version
Wie man MySQL mit Python benutzt
So verpacken Sie C in Python
Verwendung von ChemSpider in Python