Preskočiť na obsah

Obracač textu: Okamžité obrátenie a prevrátenie znakov

Bezplatný online nástroj na obrátenie textu, ktorý umožňuje okamžite obrátiť akýkoľvek reťazec. Prevráťte znaky, skontrolujte palindrómy a vytvorte text pozpiatky. Funguje s Unicode, emotikonmi a všetkými jazykmi.

Nástroj na prevracanie textu

Zadajte alebo vložte akýkoľvek text nižšie a okamžite prevrátite poradie znakov. Výsledky uvidíte v reálnom čase počas písania.

Kalkulačka načítavania...
📚

Dokumentácia

Čo je nástroj na prevracanie textu?

Nástroj na prevracanie textu (tiež nazývaný nástroj na obrátenie textu) prevráti poradie znakov v texte – vezme "Hello World" a zmení ho na "dlroW olleH". Zistíte, že je prekvapivo užitočný pre všetko od kontroly palindrómu až po vytváranie zrkadlového textu pre dizajnérsku prácu.

Nástroj funguje v reálnom čase: vložte alebo napíšte text a okamžite uvidíte jeho obrátenie. To, čo robí prevracanie textu zaujímavým, je jeho konceptuálna jednoduchosť (len čítanie odzadu), no napriek tomu podporuje niektoré skutočne užitočné aplikácie v programovaní, šifrovaní a analýze textu.

Vec sa má tak – videl som vývojárov používať prevracanie textu na ladenie, dizajnérov na vizuálne efekty a pedagógov na výučbu manipulácie s reťazcami. Bežným scenárom je, keď pracujete s algoritmami na detekciu palindrómov a potrebujete rýchlo overiť svoju logiku pomocou testovacích prípadov.

Ako používať Invertor textu

Použitie tohto nástroja na obrátenie textu pozostáva z troch jednoduchých krokov:

  1. Zadajte svoj text do vstupného poľa - napíšte priamo alebo vložte zo schránky
  2. Sledujte kúzlo ako sa obrátený text objaví okamžite nižšie (nie je potrebné klikať)
  3. Skopírujte výsledok jediným kliknutím pomocou tlačidla kopírovania

Nástroj spracováva všetko v reálnom čase, čo znamená, že môžete experimentovať a vidieť výsledky počas písania. Funguje s akoukoľvek sadou znakov - angličtina, emoji, špeciálne symboly, dokonca aj znaky Unicode z jazykov ako japončina alebo arabčina.

Vzorec a algoritmus pre obrátenie textu

Tu je matematický princíp obrátenia textu. Pre reťazec SS dĺžky nn s charaktermi S=c1c2c3...cnS = c_1c_2c_3...c_n, obrátený reťazec SS' je:

S=cncn1cn2...c1S' = c_nc_{n-1}c_{n-2}...c_1

V praxi programátori implementujú toto pomocou troch hlavných prístupov:

  1. Obrátenie poľa: Rozdeliť reťazec na znaky, obrátiť pole, potom ich spojiť späť. Najpriamočiarejší a najčitateľnejší.
  2. Technika dvoch ukazovateľov: Začať z oboch koncov, vymieňať znaky smerom do stredu. Pamäťovo efektívne, keď je možná priama modifikácia.
  3. Prístup založený na zásobníku: Vložiť znaky do zásobníka (štruktúra LIFO), potom ich vyberať. Prirodzene obráti poradie - a je to skvelý výučbový príklad pre dátové štruktúry.

Charakteristiky výkonu: Obrátenie textu beží v čase O(n)O(n) (lineárne), pretože každý znak sa spracuje presne raz. Priestorová zložitosť je tiež O(n)O(n), pretože je potrebné uložiť obrátený reťazec. Pre väčšinu praktických použití s textom do niekoľkých megabajtov je výkon okamžitý.

Stojí za zmienku - ak obraciate obrovské textové súbory (ako logy alebo datasety), môžete zvážiť streamovacie prístupy, aby ste sa vyhli načítaniu všetkého naraz do pamäte.

Krokový postup reverzného spracovania textu

Poďme si presne ukázať, ako algoritmus reverzného spracovania spracúva váš text:

  1. Začnite s prázdnym kontajnerom výsledku
  2. Čítajte od posledného znaku vstupu, pohybujte sa dozadu
  3. Pridávajte každý znak do výsledku počas postupu
  4. Zastavte sa, keď dosiahnete prvý znak
  5. Vráťte dokončený obrátený reťazec

Praktický príklad s "Hello, World!":

1Vstup: "Hello, World!"
2Krok 1: Začnite s prázdnym výsledkom: ""
3Krok 2: Vezmite posledný znak "!" → výsledok = "!"
4Krok 3: Vezmite "d" → výsledok = "!d"
5Krok 4: Vezmite "l" → výsledok = "!dl"
6Krok 5: Pokračujte pre každý znak...
7Konečný výstup: "!dlroW ,olleH"
8

Algoritmus zaobchádza s každým znakom identicky - či už ide o písmeno, číslo, interpunkciu, medzeru alebo emoji. Všetko sa zachová vo výstupnom obrátenom texte. Toto konzistentné spracovanie je dôvodom, prečo funguje spoľahlivo v rôznych jazykoch a znakových sadách.

Okrajové prípady, ktoré by ste mali poznať

Pri práci s reverzným textom narazíte na niekoľko zaujímavých okrajových prípadov:

Prázdne reťazce: Reverzácia prázdneho reťazca vám dá... prázdny reťazec. Dáva to zmysel, však? Niet čo prevracať.

Jeden znak: Prevrátiť "A" a dostanete "A". Je to vlastný opak, rovnako ako všetky jednoznakové reťazce.

Unicode a emoji: Tu sa veci stávajú zaujímavými. Algoritmus správne spracúva Unicode vrátane emoji, japonských znakov, arabského písma a iného nellatinského textu. Vyskúšajte si "こんにちは 🌍" a uvidíte, že funguje správne.

Medzery a špeciálne znaky: Medzery, tabulátory, zalomenia riadkov, interpunkcia - všetko sa prevráti presne tak, ako je. "Hello World" (s 3 medzerami) sa stane "dlroW olleH" (stále s 3 medzerami).

Veľmi dlhý text: Pre extrémne veľké vstupy (v rozsahu megabajtov textu) ste obmedzení dostupnou pamäťou. Väčšina moderných systémov to zvládne až do niekoľkých MB, ale ak spracúvate súbory v gigabajtoch, budete chcieť streamovacie riešenie namiesto načítania všetkého do pamäte.

Všimol som si jednu vec: kombinačné znaky a grafémové zhluky sa niekedy môžu správať neočakávane. Napríklad emoji so zmenami odtieňa pleti sú technicky viacerými kódovými bodmi Unicode. Väčšina implementácií to zvláda správne, ale stojí za to otestovať to s vaším konkrétnym prípadom použitia, ak pracujete so zložitým Unicode.

Reálne prípady použitia prevráteného textu

Možno vás prekvapí, ako často sa inverzia textu v praxi vyskytuje. Tu sú scenáre, kde som ju videl použitú:

Programovanie a vývoj

Kontrola palindrómu: Keď potrebujete overiť, či sa slovo číta rovnako dopredu aj dozadu, prevrátite ho a porovnáte. Napríklad "racecar" → "racecar" (zhoda = palindróm).

Precvičovanie reťazcových algoritmov: Prevracanie textu je klasická úloha na pohovoroch, ktorá testuje vaše pochopenie manipulácie s reťazcami a základných dátových štruktúr.

Ukážky implementácie zásobníka: Prevracanie textu je dokonalým príkladom pre výučbu LIFO (Last-In-First-Out) správania, pretože zásobník prirodzene prevráti poradie.

Kryptografia a bezpečnosť

Základné kódovanie: Hoci nie je samo osebe bezpečné, prevracanie textu sa niekedy používa ako jedna vrstva vo viacstupňových schémach kódovania. Ide skôr o zahmlievanie než o skutočné šifrovanie.

Systémy výzvy a odpovede: Niektoré autentifikačné systémy používajú prevátené reťazce ako súčasť svojho overovacieho procesu.

Kreatívne a vzdelávacie aplikácie

Slovné hry a hlavolamy: Vytvárajte výzvy, kde hráči identifikujú prevátené slová alebo dekódujú správy. Obľúbené v únikových miestnostiach a aplikáciách s hlavolamami.

Efekty zrkadlového písania: Dizajnéri používajú prevátený text pre logá, umelecké efekty alebo vizuálne dizajny, ktoré zahŕňajú odraz.

Vzdelávací nástroj: Pri vysvetľovaní manipulácie s reťazcami začiatočníkom je prevracanie textu dostatočne jednoduché na pochopenie, ale zároveň dostatočne zložité na demonštráciu dôležitých konceptov, ako sú iterácia a práca s poľami.

Analýza textu

Lingvistický výskum: Výskumníci skúmajúci jazykové vzory niekedy analyzujú text dopredu aj dozadu, aby identifikovali štrukturálne charakteristiky.

Detekcia vzorov: Kontrola symetrie v texte alebo hľadanie vložených prevátených sekvencií vo väčších súboroch dát.

Rôzne typy prevracania textu

Inverzia po znakoch nie je vaša jediná možnosť. V závislosti od toho, čo sa snažíte dosiahnuť, môžu byť lepšie tieto alternatívy:

Prevracanie slov: Zachovajte každé slovo v pôvodnom tvare, ale prehoďte ich poradie. Užitočné pre výučbu jazyka a určité úlohy spracovania textu.

  • Príklad: "Hello World" → "World Hello"

Prevracanie viet: Prehoďte poradie viet a zachovajte poradie slov v každej vete.

  • Príklad: "Hello World. How are you?" → "How are you? Hello World."

Selektívne prevracanie: Prevrátenie len špecifických častí podľa vašich kritérií - možno len samohlásky alebo len slová dlhšie ako 5 znakov. Skvelé na vytváranie slovných hlavolamov alebo analýzu vzorov.

  • Príklad: Prevracanie samohlások v "Hello World" → "Hollo Werld"

Fonetické prevracanie: Používané v lingvistickom výskume, prevráti zvuky namiesto písmen. Vyžaduje najprv fonetický prepis.

Prevracanie na úrovni bitov: Prevráti binárnu reprezentáciu znakov. Uvidíte to v určitých kryptografických operáciách a manipulácii s dátami na nízkej úrovni.

História prevráteného textu

Prevrátenie textu existuje oveľa dlhšie, než by ste si mohli myslieť - od starých písomných systémov až po moderné počítačové technológie.

Staré písmo a zrkadlový text

Staré civilizácie experimentovali so smerovým písaním dávno predtým, než existovali počítače. Gréci a Egypťania niekedy používali štýl "boustrophedon", kde sa riadky striedavo otáčali - zľava doprava, potom sprava doľava, podobne ako vôl orúci pole (čo slovo "boustrophedon" vlastne znamená).

Leonardo da Vinci slávne napĺňal svoje poznámkové bloky zrkadlovým písmom, kde text vyzerá prevrátene. Historici diskutujú o tom, či to bolo kvôli utajeniu, pretože bol ľavák a bolo mu to pohodlnejšie, alebo jednoducho aby zabránil rozmazaniu atramentu. Bez ohľadu na dôvod, jeho poznámkové bloky dokazujú, že prevrátenie textu sa používalo ako šifrovacia technika už po stáročia.

Éra počítačov

Keď sa počítače objavili v 50. a 60. rokoch, manipulácia s reťazcami sa stala základným programátorským cvičením. Prevrátenie textu bola jedna z klasických úloh, ktoré sa každý programátor naučil, vedľa triedenia a vyhľadávania.

To, čo to robilo obzvlášť zaujímavým, bola skutočnosť, že vývoj dátových štruktúr zásobníkov sa prirodzene spájal s prevracaním textu. Správanie zásobníka LIFO (posledný dnu, prvý von) automaticky obracia poradie - vložte "AHOJ" znak po znaku do zásobníka, vyberajte ich von, a dostanete "JÓHA". Tento elegantný vzťah spravil prevrátenie textu ukážkovým príkladom pre výučbu dátových štruktúr.

Moderné aplikácie

Dnes nájdete algoritmy prevracania textu pracujúce v pozadí:

  • Kompilátory a parsery: Používané v syntaktickej analýze a vyhodnocovaní výrazov
  • Algoritmy porovnávania reťazcov: Ako algoritmus Boyer-Moore, ktorý spracováva vzory sprava doľava
  • Kryptografia: Ako stavebné bloky pre komplexnejšie šifrovacie schémy
  • Spracovanie prirodzeného jazyka: Analýza jazykových vzorov, detekcia palindromov a skúmanie štruktúry textu

Algoritmu dodáva relevanciu jeho jednoduchosť (je jedným z prvých, ktoré sa naučíte) v kombinácii s jeho praktickou využiteľnosťou, čo zaručuje jeho význam desaťročia po jeho prvej implementácii.

Príklady kódu: Prevracanie textu v rôznych programovacích jazykoch

Tu je ukážka implementácie prevracania textu v populárnych programovacích jazykoch. Každý príklad ukazuje základný algoritmus a praktické použitie:

1' Excel VBA funkcia pre prevracanie textu
2Function InvertText(inputText As String) As String
3    Dim i As Integer
4    Dim result As String
5    
6    result = ""
7    For i = Len(inputText) To 1 Step -1
8        result = result & Mid(inputText, i, 1)
9    Next i
10    
11    InvertText = result
12End Function
13' Použitie v bunke:
14' =InvertText("Hello, World!")
15

python pôvodný_text = "Hello, World!" invertovaný_text = invert_text(pôvodný_text) print(f"Pôvodný: {pôvodný_text}") print(f"Invertovaný: {invertovaný_text}")

Spracovanie Unicode znakov

unicode_text = "こんにちは世界! 🌍" invertovaný_unicode = invert_text(unicode_text) print(f"Pôvodný Unicode: {unicode_text}") print(f"Invertovaný Unicode: {invertovaný_unicode}")

1
2

javascript function invertText(inputText) { return inputText.split('').reverse().join(''); }

// Príklad použitia: const pôvodnýText = "Hello, World!"; const invertovanýText = invertText(pôvodnýText); console.log(Pôvodný: ${pôvodnýText}); console.log(Invertovaný: ${invertovanýText});

// Spracovanie prázdnych reťazcov console.log(Invertovaný prázdny reťazec: "${invertText("")}");

// Spracovanie Unicode const unicodeText = "こんにちは世界! 🌍"; console.log(Pôvodný Unicode: ${unicodeText}); console.log(Invertovaný Unicode: ${invertText(unicodeText)});

1
2

java public class TextInverter { public static String invertText(String inputText) { return new StringBuilder(inputText).reverse().toString(); }

public static void main(String[] args) {
    String pôvodnýText = "Hello, World!";
    String invertovanýText = invertText(pôvodnýText);
    
    System.out.println("Pôvodný: " + pôvodnýText);
    System.out.println("Invertovaný: " + invertovanýText);
    
    // Spracovanie Unicode znakov
    String unicodeText = "こんにちは世界! 🌍";
    String invertovanýUnicode = invertText(unicodeText);
    System.out.println("Pôvodný Unicode: " + unicodeText);
    System.out.println("Invertovaný Unicode: " + invertovanýUnicode);
}

}

1
2

r invert_text <- function(input_text) {

Konverzia na vektor znakov, obrátenie a zreťazenie

paste(rev(strsplit(input_text, "")[[1]]), collapse = "") }

Príklad použitia

pôvodný_text <- "Hello, World!" invertovaný_text <- invert_text(pôvodný_text) cat("Pôvodný:", pôvodný_text, "\n") cat("Invertovaný:", invertovaný_text, "\n")

1
2

matlab function invertovanýText = invertText(inputText) % Funkcia na obrátenie poradia znakov v reťazci invertovanýText = inputText(end:-1:1); end

% Príklad použitia pôvodnýText = 'Hello, World!'; invertovanýText = invertText(pôvodnýText); fprintf('Pôvodný: %s\n', pôvodnýText); fprintf('Invertovaný: %s\n', invertovanýText);

1
2

cpp #include #include #include

std::string invertText(const std::string& inputText) { std::string result = inputText; std::reverse(result.begin(), result.end()); return result; }

int main() { std::string pôvodnýText = "Hello, World!"; std::string invertovanýText = invertText(pôvodnýText);

std::cout << "Pôvodný: " << pôvodnýText << std::endl;
std::cout << "Invertovaný: " << invertovanýText << std::endl;

// Spracovanie prázdnych reťazcov
std::cout << "Invertovaný prázdny reťazec: \"" << invertText("") << "\"" << std::endl;

return 0;

}

1
2

ruby def invert_text(input_text) input_text.reverse end

Príklad použitia

pôvodný_text = "Hello, World!" invertovaný_text = invert_text(pôvodný_text) puts "Pôvodný: #{pôvodný_text}" puts "Invertovaný: #{invertovaný_text}"

Spracovanie Unicode znakov

unicode_text = "こんにちは世界! 🌍" invertovaný_unicode = invert_text(unicode_text) puts "Pôvodný Unicode: #{unicode_text}" puts "Invertovaný Unicode: #{invertovaný_unicode}"

1
2

php

1
2

rust fn invert_text(input_text: &str) -> String { input_text.chars().rev().collect() }

fn main() { let pôvodný_text = "Hello, World!"; let invertovaný_text = invert_text(pôvodný_text);

println!("Pôvodný: {}", pôvodný_text);
println!("Invertovaný: {}", invertovaný_text);

// Spracovanie Unicode znakov
let unicode_text = "こんにちは世界! 🌍";
let invertovaný_unicode = invert_text(unicode_text);
println!("Pôvodný Unicode: {}", unicode_text);
println!("Invertovaný Unicode: {}", invertovaný_unicode);

}

1
2

csharp using System;

class TextInverter { public static string InvertText(string inputText) { char[] charArray = inputText.ToCharArray(); Array.Reverse(charArray); return new string(charArray); }

static void Main()
{
    string pôvodnýText = "Hello, World!";
    string invertovanýText = InvertText(pôvodnýText);
    
    Console.WriteLine($"Pôvodný: {pôvodnýText}");
    Console.WriteLine($"Invertovaný: {invertovanýText}");
    
    // Spracovanie prázdnych reťazcov
    Console.WriteLine($"Invertovaný prázdny reťazec: \"{InvertText("")}\"");
    
    // Spracovanie Unicode znakov
    string unicodeText = "こんにちは世界! 🌍";
    string invertovanýUnicode = InvertText(unicodeText);
    Console.WriteLine($"Pôvodný Unicode: {unicodeText}");
    Console.WriteLine($"Invertovaný Unicode: {invertovanýUnicode}");
}

}

1
2

go package main

import ( "fmt" )

func invertText(inputText string) string { runes := []rune(inputText) for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 { runes[i], runes[j] = runes[j], runes[i] } return string(runes) }

func main() { pôvodnýText := "Hello, World!" invertovanýText := invertText(pôvodnýText)

fmt.Printf("Pôvodný: %s\n", pôvodnýText)
fmt.Printf("Invertovaný: %s\n", invertovanýText)

// Spracovanie Unicode znakov
unicodeText := "こんにちは世界! 🌍"
invertovanýUnicode := invertText(unicodeText)
fmt.Printf("Pôvodný Unicode: %s\n", unicodeText)
fmt.Printf("Invertovaný Unicode: %s\n", invertovanýUnicode)

}

1
2

swift func invertText(_ inputText: String) -> String { return String(inputText.reversed()) }

// Príklad použitia let pôvodnýText = "Hello, World!" let invertovanýText = invertText(pôvodnýText)

print("Pôvodný: (pôvodnýText)") print("Invertovaný: (invertovanýText)")

// Spracovanie Unicode znakov let unicodeText = "こんにちは世界! 🌍" let invertovanýUnicode = invertText(unicodeText) print("Pôvodný Unicode: (unicodeText)") print("Invertovaný Unicode: (invertovanýUnicode)")


## Tipy na optimalizáciu výkonu

Ak pracujete s reverzným textom v produkčnom kóde, tu sú faktory výkonu, ktoré stoja za zváženie:

**Využitie pamäte**: Vytvorenie reverznej kópie vyžaduje pamäť rovnakú ako veľkosť vstupu. Pre malé až stredné reťazce (pod 1 MB) je to zanedbateľné. Pre väčšie texty zdvojnásobujete dočasné využitie pamäte.

**Reverzia na mieste**: Jazyky ako C, C++ a Rust vám umožňujú priamo v pamäti obrátiť pole znakov bez vytvorenia kópie. To znižuje využitie pamäte na polovicu, ale funguje len s modifikovateľnými reťazcami. Mnohé jazyky (Python, JavaScript, Java) používajú nemeniteľné reťazce, takže ste nútení vytvoriť nový.

**Spracovanie Unicode**: Tu sa veci komplikujú. Viacbajtové znaky Unicode vyžadujú správne spracovanie, inak dôjde ku poškodeniu kódovania. Väčšina moderných knižníc štandardných jazykov to spracúva správne, ale ak píšete nízkoúrovňový kód alebo pracujete priamo s bajtovými poľami, buďte opatrní. Otestujte s emotikonmi a ne-latinsky písanými skriptami.

**Streamovanie pre veľké súbory**: Ak prevraciate gigabajtové log súbory alebo datasety, nenačítavajte všetko do pamäte. Použite streamovací prístup — čítajte kusy od konca a priebežne ich zapisujte. Podľa [Unicode Technical Standard #18](https://unicode.org/reports/tr18/), spracovanie grafémových zhlukov vyžaduje osobitnú pozornosť pre správnu detekciu textových hraníc.

**Paralelizácia**: Pre extrémne dlhé reťazce môžete teoreticky paralelizovať reverziu (rozdeliť na časti, každú otočiť, spojiť). V praxi sa réžia väčšinou nevypláca, pokiaľ nejde o obrovské datasety a nemáte dostatok výpočtových zdrojov.

## Často kladené otázky

### Ako môžem obrátiť text online?

Jednoducho vložte alebo napíšte text do vstupného poľa vyššie. Nástroj ho automaticky obráti v reálnom čase - nie je potrebné klikať na žiadne tlačidlá. Výsledok môžete skopírovať jedným kliknutím.

### Aký je rozdiel medzi obracaním textu a obracaním slov?

Obrátenie textu (obrat znakov) prevráti jednotlivé znaky: "Hello World" → "dlroW olleH". Obrátenie slov zachová každé slovo v pôvodnom poradí, ale zmení poradie slov: "Hello World" → "World Hello". Tento nástroj robí obrat znakov.

### Dokáže tento nástroj spracovať emojis a Unicode znaky?

Áno. Nástroj správne spracúva všetky Unicode znaky vrátane emojis, čínskeho/japonského/kórejského textu, arabského písma, špeciálnych symbolov a kombinovaných znakov. Vyskúšajte to s "こんにちは 🌍" a presvedčte sa sami.

### Je obrátený text to isté čo zrkadlové písmo?

Sú príbuzné, ale nie identické. Obrat znakov (čo tento nástroj robí) jednoducho obráti poradie znakov. Zrkadlové písmo prevráti znaky horizontálne, takže sa zobrazia ako zrkadlové odrazy. Na čítanie zrkadlového písma potrebujete skutočné zrkadlo alebo horizontálne prevrátenie.

### Prečo by som potreboval obracať text?

Bežné použitia zahŕňajú: kontrolu palindrómov, vytváranie jednoduchého kódovania pre hádanky, generovanie testovacích dát pre programovanie, vytváranie umeleckých textových efektov, výučbu reťazcových algoritmov a ladenie kódu spracovania textu.

### Ak obrátime text dvakrát, dostaneme pôvodný text späť?

Áno. Obrátenie textu je vlastná inverzná operácia. Ak obrátite "Hello" a dostanete "olleH", a potom obrátite "olleH", dostanete späť "Hello". Matematicky sa tomu hovorí involúcia.

### Ako rýchlo prebieha obrátenie textu?

Veľmi rýchlo - lineárna časová zložitosť O(n), kde n je dĺžka textu. Pre typický text (niekoľko odsekov) je spracovanie okamžité. Dokonca aj pre veľmi dlhý text (tisíce slov) moderné počítače zvládnu spracovanie v milisekundách.

### Môžem obracať text v Exceli alebo Google Sheets?

Áno, ale potrebujete vlastnú funkciu, pretože nie je zabudovaná funkcia na obrátenie. Pozrite si sekciu s príkladmi kódu vyššie pre implementácie v Excel VBA a iných programovacích jazykoch.

## Technické referencie

1. Knuth, D. E. (1997). *Umenie počítačového programovania, Zväzok 1: Základné algoritmy* (3. vyd.). Addison-Wesley Professional.

2. Sedgewick, R., & Wayne, K. (2011). *Algoritmy* (4. vyd.). Addison-Wesley Professional.

3. Unicode Konzorcium. *Unicode Technická norma #18: Unicode Regulárne výrazy*. Dostupné na: https://unicode.org/reports/tr18/

4. MDN Web Dokumentácia. *Referencia metód reťazcov*. Mozilla Developer Network. Dostupné na: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String

5. Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). *Úvod do algoritmov* (3. vyd.). MIT Press.