Liigu sisu juurde

Teksti Pööraja: Teksti Tagurpidi Keeramine ja Tärkide Ümberpööramine Koheselt

Tasuta veebipõhine teksti pööramise tööriist, mis pöörab mistahes stringi koheselt. Keerake tähemärke, kontrollige palindroome ja looge tagurpidi teksti. Töötab Unicode'i, emojide ja kõigi keeltega.

Teksti Pööraja Tööriist

Sisestage või kleepige allpool mis tahes tekst, et koheselt pöörata märkide järjekorda. Näete tulemusi reaalajas, kui te kirjutate.

Laadimiskalkulaator...
📚

Dokumentatsioon

Mis on teksti pööramise tööriist?

Teksti pööramise tööriist (mida nimetatakse ka teksti tagurpidi pööramise tööriistaks) pöörab teksti märgid ümber – muutes "Hello World" kujule "dlroW olleH". See on üllatavalt kasulik alates palindroomi kontrollimisest kuni kujunduses kasutatava peegeltekstini.

Tööriist toimib reaalajas: kleepige või sisestage oma tekst ning näete seda kohe tagurpidi. Teksti pööramise huvitavus seisneb selles, et see on kontseptuaalselt väga lihtne (lihtsalt loetakse tagurpidi), kuid omab siiski olulisi rakendusi programmeerimisel, krüpteerimisel ja teksti analüüsil.

Nimelt olen näinud arendajaid kasutamas teksti pööramist silumisel, disainereid visuaalsete efektide loomisel ning õpetajaid stringide manipuleerimise õpetamisel. Tavaline stsenaarium on palindroomi tuvastamise algoritmide testimisel, kus on vaja kiiresti kontrollida oma loogika õigsust.

Kuidas kasutada teksti pöörajat

Selle teksti pööramiseks mõeldud tööriista kasutamine koosneb kolmest lihtsast sammust:

  1. Sisestage oma tekst sisendväljale – kirjutage otse või kleepige lõikelauale
  2. Vaadake võlurit kui pööratud tekst ilmub kohe alla (pole vaja midagi klõpsata)
  3. Kopeerige tulemus ühe klõpsuga kasutades kopeerimise nuppu

Tööriist töötleb kõike reaalajas, mis tähendab, et saate eksperimenteerida ja näha tulemusi kohe sisestamise ajal. Töötab kõigi märgistikudega – inglise keel, emojid, erisümbolid, isegi Unicode märgid keeltest nagu jaapani või araabia.

Teksti pööramisvormel ja algoritm

Siin on matemaatiline selgitus teksti pööramisest. Stringi SS pikkusega nn, mis koosneb tähtedest S=c1c2c3...cnS = c_1c_2c_3...c_n, pööratud string SS' on:

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

Programmeerijad rakendavad seda tavaliselt kolme peamise lähenemisviisiga:

  1. Massiivi pööramine: Tükeldage string tähtedeks, pöörake massiiv, seejärel ühendage tagasi. Kõige lihtsam ja loetavam.
  2. Kahe osutaja tehnika: Alustage mõlemast otsast, vahetage tähti liikudes keskele. Mälutõhus, kui saab kohapeal muuta.
  3. Virna-põhine lähenemine: Lükake tähti virna (LIFO struktuur), seejärel võtke välja. See pöörab järjekorra loomulikult ning on suurepärane õppimise näide andmestruktuuridest.

Jõudluse omadused: Teksti pööramine toimub O(n)O(n) ajalise keerukusega (lineaarne), kuna iga tähte töödeldakse täpselt üks kord. Ruumiliseks keerukuseks on samuti O(n)O(n), kuna peate salvestama pööratud stringi. Enamiku praktiliste kasutusvaldkondade puhul alla mõne megabaidi on jõudlus kohene.

Märkimisväärne on, et kui pöörate tohutuid tekstifaile (nagu logid või andmekogumid), võiksite kaaluda voogedastuse lähenemisi, et vältida kogu sisu korraga mällu laadimist.

Samm-sammulise teksti pööramisprotsessi kirjeldus

Luban teil täpselt läbi käia, kuidas pööramisalgoritm teie teksti töötleb:

  1. Alustage tühja tulemuste konteineriga
  2. Lugege sisendi viimast tähemärgist tagurpidi liikudes
  3. Lisage iga tähemärk tulemustele liikudes
  4. Lõpetage, kui olete jõudnud esimese tähemärgini
  5. Tagastage lõpetatud pööratud string

Praktiline näide "Hello, World!" jaoks:

1Sisend: "Hello, World!"
2Samm 1: Alustage tühja tulemusega: ""
3Samm 2: Võtke viimane tähemärk "!" → tulemus = "!"
4Samm 3: Võtke "d" → tulemus = "!d"
5Samm 4: Võtke "l" → tulemus = "!dl"
6Samm 5: Jätkake iga tähemärgiga...
7Lõplik väljund: "!dlroW ,olleH"
8

Algoritm käsitleb kõiki tähemärke täpselt ühtemoodi - olgu tegemist tähe, numbri, kirjavahemärgi, tühiku või emojiga. Kõik säilitatakse pööratud väljundis. See järjekindel käsitlus tagab töökindluse erinevate keelte ja tähemärgikomplektide puhul.

Ääreolukorrad, mida peaksite teadma

Teksti pööramisel võite kohata mõningaid huvitavaid ääreolukordi:

Tühjad stringid: Tühja stringi pööramine annab teile... tühja stringi. Loogiline, eks ju? Pole midagi pöörata.

Üksik märk: Pööra "A" ja saad "A". See on iseenda pööre, nagu kõik üksikud märgid.

Unicode ja emojid: Siin muutub asi huvitavaks. Algoritm käsitleb Unicode'i korrektselt, kaasa arvatud emojid, jaapani märgid, araabia kiri ja muud mitte-ladina teksti. Proovi "こんにちは 🌍" ja näed, et see töötab õigesti.

Tühikud ja erimärgid: Tühikud, tabulaatorid, reavahetused, kirjavahemärgid - kõik pööratakse täpselt nii nagu on. "Hello World" (3 tühikuga) muutub "dlroW olleH" (endiselt 3 tühikuga).

Väga pikk tekst: Äärmiselt suurte sisendite puhul (mõtle megabaitidesse) on piiravaks teguriks saadaolev mälu. Enamik tänapäevaseid süsteeme käsitleb seda hästi kuni mitmete megabaitideni, kuid gigabaidisuuruste failide töötlemisel peaksid kasutama voogedastuse lahendust, mitte kogu sisu mällu laadima.

Üks asi, mida olen täheldanud: kombineeritud märgid ja grafeemiklastrid võivad vahel käituda ootamatult. Näiteks emojid nahatooni modifikaatoritega koosnevad tehniliselt mitmest Unicode'i koodipunktist. Enamik rakendusi käsitleb seda õigesti, kuid tasub testida oma konkreetse kasutusjuhtumi puhul, kui töötad keerulise Unicode'iga.

Teksti pööramisega seotud reaalsed kasutusjuhud

Võib-olla üllatute, kui tihti teksti inversioon praktikas esineb. Siin on stsenaariumid, kus ma olen seda näinud:

Programmeerimine ja arendus

Palindroomi kontroll: Kui peate kontrollima, kas sõna loetakse ühte- ja teistpidi sama moodi, pöörate selle ümber ja võrdlete. Näiteks "racecar" → "racecar" (sobib = palindroom).

Stringi algoritmi harjutamine: Teksti pööramine on klassikaline kodeerimisintervjuu ülesanne, mis testib teie arusaamist stringi manipuleerimisest ja põhilistest andmestruktuuridest.

Virna rakendamise näidised: Teksti pööramine on ideaalne näide LIFO (Last-In-First-Out) käitumise õpetamiseks, kuna virn pöörab loomulikult järjekorra ümber.

Krüptograafia ja turvalisus

Lihtne kodeerimine: Kuigi see pole omaette turvaline, kasutatakse teksti pööramist mõnikord mitme etapilise kodeerimisskeemi ühe kihina. See on pigem varjamise kui tegeliku krüpteerimise kohta.

Väljakutse-vastuse süsteemid: Mõned autentimissüsteemid kasutavad pööratud stringi oma kontrollimisprotsessis.

Loovad ja hariduslikud rakendused

Sõnamängud ja mõistatused: Looge väljakutseid, kus mängijad tuvastaksid pööratud sõnu või dekodeeriks sõnumeid. Populaarne põgenemistubades ja mõistatuste rakendustes.

Peegeldusefektid: Disainerid kasutavad pööratud teksti logodele, kunstilisteks efektideks või visuaalseteks disainideks, mis sisaldavad peegeldust.

Õppevahend: Stringi manipuleerimise selgitamisel algajatele on teksti pööramine piisavalt lihtne, et aru saada, kuid piisavalt keeruline, et näidata olulisi kontseptsioone nagu iteratsioon ja massiivi käsitlemine.

Teksti analüüs

Lingvistiline uurimus: Keelemustreid uurivad teadlased analüüsivad mõnikord teksti nii edasi- kui tagurpidi, et tuvastada struktuurilisi omadusi.

Mustri tuvastamine: Teksti sümmeetria kontrollimine või pööratud järjestuste leidmine suurematest andmekogumikest.

Teksti pööramisviisid

Märkide kaupa inversioon pole ainus võimalus. Sõltuvalt sellest, mida te proovite saavutada, võivad need alternatiivid paremini sobida:

Sõnade pööramine: Hoidke iga sõna tervikuna, kuid vahetage nende järjekorda. Kasulik keeleõppeks ja teatud tekstitöötluse ülesanneteks.

  • Näide: "Hello World" → "World Hello"

Lausete pööramine: Vahetage lausete järjekorda, säilitades sõnade järjekorra igas lauses.

  • Näide: "Hello World. How are you?" → "How are you? Hello World."

Selektiivne pööramine: Pöörake ümber ainult kindlad osad vastavalt teie kriteeriumitele - võib-olla ainult täishäälikud või ainult üle 5 tähemärgi pikkused sõnad. Suurepärane sõnamõistatuste või mustri analüüsi jaoks.

  • Näide: Ainult täishäälikute pööramine sõnas "Hello World" → "Hollo Werld"

Foneetiline pööramine: Kasutatakse lingvistilises uurimuses, pöörab tähtede asemel helid. Nõuab esmalt foneetilist transkriptsiooni.

Bitiväärtuse pööramine: Pöörab märkide binaarse esituse. Seda näeb teatud krüptograafilistes toimingutes ja madala taseme andmete manipuleerimisel.

Teksti pööramisajaloo

Teksti pööramine on olemas olnud palju kauem, kui te võib-olla arvate - ulatudes vanadest kirjasüsteemidest kaasaegse arvutuseni.

Muistsed kirjutised ja peegeltekst

Muistsed tsivilisatsioonid eksperimenteerisid kirjutamise suunaga juba enne arvutite loomist. Kreeklased ja egiptlased kasutasid mõnikord "boustrophedoni" stiili, kus read vaheldusid suunalt - vasakult paremale, siis paremalt vasakule, nagu pull künd väljal (mida "boustrophedon" tähendabki).

Leonardo da Vinci täitis kuulsalt oma märkmikud peegeltekstiga, kus tekst näib pööratud. Ajaloolased arutlevad, kas see oli saladuse hoidmiseks, seetõttu et ta oli vasakukäeline ja see oli mugavam, või lihtsalt tindi määrdumise vältimiseks. Ükskõik mis põhjusel, tema märkmikud näitavad, et teksti pööramist on sajandeid kasutatud kodeerimistehnikana.

Arvutusajastu

Kui arvutid tekkisid 1950.-60. aastatel, sai stringide manipuleerimine põhiliseks programmeerimisharjutuseks. Teksti pööramine oli üks nendest klassikalistest probleemidest, mida iga programmeerija õppis, koos sorteerimise ja otsimisega.

Mis tegi selle eriti huvitavaks: virna andmestruktuuride areng oli loomulikult seotud teksti pööramisega. Virna LIFO (Last-In-First-Out) käitumine pöörab automaatselt järjekorra - lükka "TERE" täht-tähe haaval vinna, võta need maha, ja saad "ERET". See elegantne seos tegi teksti pööramisest andmestruktuuride õpetamise näidise.

Kaasaegsed rakendused

Tänapäeval leiate teksti pööramisalgoritme töötatuna tagaplaanil:

  • Kompilaatorid ja parsijad: Kasutatakse süntaksianalüüsis ja avaldiste hindamisel
  • Stringide sobitamise algoritmid: Nagu Boyer-Moore algoritm, mis töötleb mustreid paremalt vasakule
  • Krüptograafia: Keerulisemate krüpteerimisskeemide ehituskividena
  • Loomulik keeletöötlus: Lingvistiliste mustrite analüüsimisel, palindroomide tuvastamisel ja teksti struktuuri uurimisel

Algoritmi lihtsus (see on üks esimesi, mida õpitakse) koos selle praktilise kasulikkusega tagab selle püsiva asjakohasuse aastaid pärast selle esimest rakendamist.

Koodinäited: Teksti pööramine erinevates programmeerimiskeeltes

Siin on näited, kuidas teksti pöörata populaarsetes programmeerimiskeeltes. Iga näide näitab põhialgoritmi ja praktilist kasutust:

1' Excel VBA funktsioon teksti pööramiseks
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' Kasutamine lahtris:
14' =InvertText("Tere, Maailm!")
15

python original_text = "Tere, maailm!" inverted_text = invert_text(original_text) print(f"Algne: {original_text}") print(f"Pööratud: {inverted_text}")

Unikoodimärkide käsitlemine

unicode_text = "こんにちは世界! 🌍" inverted_unicode = invert_text(unicode_text) print(f"Algne Unikood: {unicode_text}") print(f"Pööratud Unikood: {inverted_unicode}")

1
2

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

// Näidiskasutus: const originalText = "Tere, maailm!"; const invertedText = invertText(originalText); console.log(Algne: ${originalText}); console.log(Pööratud: ${invertedText});

// Tühja stringi käsitlemine console.log(Tühi string pööratud: "${invertText("")}");

// Unikoodimärkide käsitlemine const unicodeText = "こんにちは世界! 🌍"; console.log(Algne Unikood: ${unicodeText}); console.log(Pööratud Unikood: ${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 originalText = "Tere, maailm!";
    String invertedText = invertText(originalText);
    
    System.out.println("Algne: " + originalText);
    System.out.println("Pööratud: " + invertedText);
    
    // Unikoodimärkide käsitlemine
    String unicodeText = "こんにちは世界! 🌍";
    String invertedUnicode = invertText(unicodeText);
    System.out.println("Algne Unikood: " + unicodeText);
    System.out.println("Pööratud Unikood: " + invertedUnicode);
}

}

1
2

r invert_text <- function(input_text) {

Teisenda tähevektor, pööra ja liida kokku

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

Näidiskasutus

original_text <- "Tere, maailm!" inverted_text <- invert_text(original_text) cat("Algne:", original_text, "\n") cat("Pööratud:", inverted_text, "\n")

1
2

matlab function invertedText = invertText(inputText) % Funktsioon stringi märkide järjekorra pööramiseks invertedText = inputText(end:-1:1); end

% Näidiskasutus originalText = 'Tere, maailm!'; invertedText = invertText(originalText); fprintf('Algne: %s\n', originalText); fprintf('Pööratud: %s\n', invertedText);

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 originalText = "Tere, maailm!"; std::string invertedText = invertText(originalText);

std::cout << "Algne: " << originalText << std::endl;
std::cout << "Pööratud: " << invertedText << std::endl;

// Tühja stringi käsitlemine
std::cout << "Tühi string pööratud: \"" << invertText("") << "\"" << std::endl;

return 0;

}

1
2

ruby def invert_text(input_text) input_text.reverse end

Näidiskasutus

original_text = "Tere, maailm!" inverted_text = invert_text(original_text) puts "Algne: #{original_text}" puts "Pööratud: #{inverted_text}"

Unikoodimärkide käsitlemine

unicode_text = "こんにちは世界! 🌍" inverted_unicode = invert_text(unicode_text) puts "Algne Unikood: #{unicode_text}" puts "Pööratud Unikood: #{inverted_unicode}"

1
2

php

1
2

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

fn main() { let original_text = "Tere, maailm!"; let inverted_text = invert_text(original_text);

println!("Algne: {}", original_text);
println!("Pööratud: {}", inverted_text);

// Unikoodimärkide käsitlemine
let unicode_text = "こんにちは世界! 🌍";
let inverted_unicode = invert_text(unicode_text);
println!("Algne Unikood: {}", unicode_text);
println!("Pööratud Unikood: {}", inverted_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 originalText = "Tere, maailm!";
    string invertedText = InvertText(originalText);
    
    Console.WriteLine($"Algne: {originalText}");
    Console.WriteLine($"Pööratud: {invertedText}");
    
    // Tühja stringi käsitlemine
    Console.WriteLine($"Tühi string pööratud: \"{InvertText("")}\"");
    
    // Unikoodimärkide käsitlemine
    string unicodeText = "こんにちは世界! 🌍";
    string invertedUnicode = InvertText(unicodeText);
    Console.WriteLine($"Algne Unikood: {unicodeText}");
    Console.WriteLine($"Pööratud Unikood: {invertedUnicode}");
}

}

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() { originalText := "Tere, maailm!" invertedText := invertText(originalText)

fmt.Printf("Algne: %s\n", originalText)
fmt.Printf("Pööratud: %s\n", invertedText)

// Unikoodimärkide käsitlemine
unicodeText := "こんにちは世界! 🌍"
invertedUnicode := invertText(unicodeText)
fmt.Printf("Algne Unikood: %s\n", unicodeText)
fmt.Printf("Pööratud Unikood: %s\n", invertedUnicode)

}

1
2

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

// Näidiskasutus let originalText = "Tere, maailm!" let invertedText = invertText(originalText)

print("Algne: (originalText)") print("Pööratud: (invertedText)")

// Unikoodimärkide käsitlemine let unicodeText = "こんにちは世界! 🌍" let invertedUnicode = invertText(unicodeText) print("Algne Unikood: (unicodeText)") print("Pööratud Unikood: (invertedUnicode)")


## Jõudluse optimeerimise näpunäited

Kui töötate teksti pööramisega tootmiskoodis, siis siin on jõudluse tegurid, mida tasub kaaluda:

**Mälukasutus**: Pööratud koopia loomine nõuab mälu, mis võrdub sisendi suurusega. Väikeste kuni keskmiste stringide puhul (alla 1 MB) on see tähtsusetu. Suurema teksti puhul kahekordistub mälukasutus ajutiselt.

**Kohapeal pööramine**: Keeled nagu C, C++ ja Rust võimaldavad tähemärkide massiive otse mälus pöörata ilma koopiat loomata. See vähendab mälukasutust poole võrra, kuid töötab ainult muudetavate stringidega. Paljud keeled (Python, JavaScript, Java) kasutavad muutumatuid stringe, seega peate looma uue.

**Unicode'i käsitlemine**: Siin muutuvad asjad keerulisemaks. Mitmebaidised Unicode'i tähemärgid vajavad õiget käsitlemist, vastasel juhul rikute kodeeringu. Enamik kaasaegseid keelte standardteeke käsitlevad seda õigesti, kuid kui kirjutate madaltaseme koodi või töötate otse baidimassividega, olge ettevaatlik. Testige emojidega ja mitte-ladina kirjadega, et kontrollida.

**Voogedastus suurte failide jaoks**: Kui pöörate gigabaidi suurusi logifaile või andmekogumeid, ärge laadige kõike mällu. Kasutage voogedastuse lähenemist — lugege tükke lõpust, kirjutage neid välja. Vastavalt [Unicode'i tehnilisele standardile #18](https://unicode.org/reports/tr18/), nõuab grafeemklastrite käsitlemine erilist tähelepanu õigeks teksti piiride tuvastamiseks.

**Paralleliseerimine**: Äärmiselt pikad stringid on teoreetiliselt paralleliseeritavad (tükeldage, pöörake iga tükk, ühendage). Praktikas ei ole üldiselt see vaev väärt, välja arvatud juhul, kui teil on tohutud andmekogumid ja arvutusressursid.

## Korduma Kippuvad Küsimused

### Kuidas ma teksti veebis tagurpidi kirjutan?

Lihtsalt kleepige või sisestage oma tekst ülemisel sisestusväljal. Tööriist pöörab selle automaatselt reaalajas tagurpidi - pole vaja ühtegi nuppu vajutada. Tulemuse saab kopeerida ühe klõpsuga.

### Mis on erinevus teksti tagurpidi kirjutamise ja sõnade tagurpidi kirjutamise vahel?

Teksti tagurpidi kirjutamine (tärkide tagurpidi pööramine) pöörab individuaalsed tähemärgid: "Hello World" → "dlroW olleH". Sõnade tagurpidi kirjutamine hoiab iga sõna tervikuna, kuid pöörab nende järjekorra: "Hello World" → "World Hello". See tööriist teeb tärkide tagurpidi pööramist.

### Kas see tööriist suudab tegeleda emojide ja Unicode'i tärkidega?

Jah. Tööriist käsitleb õigesti kõiki Unicode'i tärke, sealhulgas emojisid, hiina/jaapani/korea teksti, araabia kirja, erisümboleid ja kombineeritud tärke. Proovige "こんにちは 🌍", et ise veenduda.

### Kas tagurpidi tekst on sama mis peeglikirjutus?

Need on seotud, kuid mitte identsed. Tärkide tagurpidi pööramine (mida see tööriist teeb) lihtsalt pöörab tärkide järjekorda. Peeglikirjutus pöörab tähemärgid horisontaalselt, nii et need näevad välja nagu peegli kujutised. Peeglikirja lugemiseks vajate tegelikku peeglit või horisontaalset pööramist.

### Miks ma peaksin teksti tagurpidi kirjutama?

Levinud kasutusviisid hõlmavad: palindroomide kontrollimist, lihtsate kooditabelite loomist mõistatusteks, testimisandmete genereerimist programmeerimiseks, kunstiliste tekstiefektide loomist, stringi algoritmide õpetamist ja tekstitöötluse koodi silumist.

### Kas teksti kaks korda tagurpidi pööramine annab mulle algse teksti tagasi?

Jah. Teksti tagurpidi pööramine on iseenda pöördoperatsioon. Kui te pöörate "Hello" tagurpidi, et saada "olleH", ja siis pöörate "olleH" tagasi, saate "Hello" uuesti. Matemaatiliselt nimetatakse seda involutsiooniks.

### Kui kiire on teksti tagurpidi pööramine?

See on väga kiire - lineaarse ajakeerukusega O(n), kus n on teksti pikkus. Tüüpilise teksti puhul (mõni lõik) toimub töötlemine koheselt. Isegi väga pika teksti puhul (tuhandeid sõnu) käsitlevad kaasaegsed arvutid seda millisekunditega.

### Kas ma saan teksti pöörata Excelis või Google Sheets'is?

Jah, kuid vajate selleks kohandatud funktsiooni, kuna sisseehitatud tagurpidi pööramise funktsiooni pole. Vaadake ülalpool olevast koodinäidete jaotisest Excel VBA ja teisi programmeerimise rakendusi.

## Tehnilised viited

1. Knuth, D. E. (1997). *Arvutiprogrammeerimise kunst, 1. köide: Fundamentaalsed algoritmid* (3. väljaanne). Addison-Wesley Professional.

2. Sedgewick, R., & Wayne, K. (2011). *Algoritmid* (4. väljaanne). Addison-Wesley Professional.

3. Unicode Konsortsiumi. *Unicode tehniline standard #18: Unicode regulaaravaldised*. Kättesaadav: https://unicode.org/reports/tr18/

4. MDN Web Docs. *Stringimeetodite teatmik*. Mozilla Developer Network. Kättesaadav: 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). *Sissejuhatus algoritmidesse* (3. väljaanne). MIT Press.