Un'attività che a volte faccio quando sono annoiato è quella di scrivere un paio di personaggi in coppie corrispondenti. Traccio quindi delle linee (sopra le cime mai sotto) per collegare questi personaggi. Ad esempio potrei scrivere e quindi le linee come:
O potrei scrivere
Dopo aver tracciato queste linee, provo a disegnare anelli chiusi attorno a blocchi in modo che il mio anello non intersechi nessuna delle linee che ho appena disegnato. Ad esempio, nel primo l'unico loop che possiamo disegnare è attorno all'intera cosa, ma nel secondo possiamo disegnare un loop attorno solo alla s (o tutto il resto)
Se ci proviamo per un po 'scopriremo che alcune stringhe possono essere disegnate solo in modo che i loop chiusi contengano tutte o nessuna delle lettere (come il nostro primo esempio). Chiameremo tali stringhe stringhe ben collegate.
Si noti che alcune stringhe possono essere disegnate in più modi. Ad esempio può essere disegnato in entrambi i seguenti modi (e un terzo non incluso):
Se uno di questi modi può essere disegnato in modo tale che un loop chiuso possa contenere alcuni dei caratteri senza intersecare nessuna delle linee, la stringa non è ben collegata. (quindi non è ben collegato)
Compito
Il tuo compito è scrivere un programma per identificare le stringhe che sono ben collegate. Il tuo input sarà costituito da una stringa in cui ogni carattere appare un numero pari di volte e il tuo output dovrebbe essere uno dei due valori coerenti distinti, uno se le stringhe sono ben collegate e l'altro altrimenti.
Inoltre, il programma deve avere un significato di stringa ben collegato
Ogni personaggio appare un numero pari di volte nel tuo programma.
Dovrebbe produrre il valore di verità una volta superato.
Il programma dovrebbe essere in grado di produrre l'output corretto per qualsiasi stringa composta da caratteri da ASCII stampabile o dal proprio programma. Con ogni personaggio che appare un numero pari di volte.
Le risposte verranno classificate come lunghezze in byte con un numero inferiore di byte con un punteggio migliore.
Suggerimento
Una stringa non è ben collegata se esiste una sottostringa rigida contigua non vuota in modo tale che ciascun carattere appaia un numero pari di volte in quella sottostringa.
Casi test
abcbac -> True
abbcac -> False
bbbb -> False
abacbc -> True
abcbabcb -> True
abcbca -> False
there
.
abcbca -> False
.