Langkau ke kandungan

Pembalik Teks: Songsangkan Teks & Balikkan Aksara Serta-merta

Alat pembalik teks dalam talian percuma untuk menyongsangkan mana-mana rentetan serta-merta. Balikkan aksara, semak palindrom, dan hasilkan teks terbalik. Berfungsi dengan Unicode, emoji, dan semua bahasa.

Alat Pembalik Teks

Masukkan atau tampal sebarang teks di bawah untuk membalikkan urutan aksara secara segera. Lihat keputusan dalam masa sebenar semasa anda menaip.

Kalkulator Pemuatan...
📚

Dokumentasi

Apakah Alat Pembalik Teks?

Alat pembalik teks (juga dipanggil alat teks songsang) membalikkan urutan aksara dalam teks anda—mengambil "Hello World" dan menukarnya menjadi "dlroW olleH". Anda akan mendapati ini mengejutkan berguna untuk pelbagai perkara dari menyemak sama ada sesuatu palindrom hingga mencipta teks cermin untuk kerja reka bentuk.

Alat ini berfungsi secara masa nyata: tampal atau taip teks anda, dan anda akan serta-merta melihatnya dibalikkan. Yang menjadikan pembalikan teks menarik ialah ia konseptual yang sangat mudah (sekadar membaca ke belakang), namun ia mempunyai aplikasi yang berguna dalam pengaturcaraan, penyulitan, dan analisis teks.

Inilah yang menarik—saya telah melihat pembangun menggunakan pembalikan teks untuk penyahpepijatan, pereka bentuk menggunakannya untuk kesan visual, dan pendidik menggunakannya untuk mengajar manipulasi rentetan. Skenario biasa adalah apabila anda sedang bekerja dengan algoritma pengesanan palindrom dan perlu dengan cepat mengesahkan logik anda dengan kes ujian.

Cara Menggunakan Pembalik Teks

Menggunakan alat pembalik teks ini memerlukan tiga langkah mudah:

  1. Masukkan teks anda dalam ruang input—taip terus atau tampal dari papan klip anda
  2. Saksikan keajaiban apabila teks terbalik muncul serta-merta di bawah (tiada perlu mengklik apa-apa)
  3. Salin hasilnya dengan satu klik menggunakan butang salin

Alat ini memproses segala-galanya dalam masa nyata, yang bermakna anda boleh bereksperimen dan melihat hasilnya semasa anda menaip. Berfungsi dengan mana-mana set aksara—Inggeris, emoji, simbol khas, malah aksara Unicode dari bahasa seperti Jepun atau Arab.

Formula dan Algoritma Pembalikan Teks

Begini cara kerja pembalikan teks secara matematis. Untuk rentetan SS dengan panjang nn dengan karakter S=c1c2c3...cnS = c_1c_2c_3...c_n, rentetan terbalik SS' adalah:

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

Dalam amalan, pengaturcara melaksanakan ini menggunakan tiga pendekatan utama:

  1. Pembalikan Tatasusunan: Pisahkan rentetan menjadi karakter, balikkan tatasusunan, kemudian gabungkan semula. Paling mudah dan boleh dibaca.
  2. Teknik Penunjuk Berkembar: Mulakan dari kedua-dua hujung, tukar karakter sambil bergerak ke tengah. Cekap memori apabila boleh diubah di tempat.
  3. Pendekatan Tumpukan: Tolak karakter ke atas tumpukan (struktur LIFO), kemudian keluarkan. Ini secara semula jadi membalikkan urutan—dan ia adalah contoh yang baik untuk struktur data.

Ciri-ciri prestasi: Pembalikan teks berjalan dalam kompleksiti masa O(n)O(n) (linear) kerana setiap karakter diproses tepat sekali. Kompleksiti ruang juga O(n)O(n) kerana anda perlu menyimpan rentetan yang dibalikkan. Untuk kegunaan praktikal dengan teks di bawah beberapa megabait, prestasi adalah segera.

Satu perkara yang patut diambil perhatian—jika anda membalikkan fail teks yang sangat besar (seperti log atau set data), anda mungkin ingin mempertimbangkan pendekatan strim untuk mengelakkan memuatkan segala-galanya ke dalam memori sekaligus.

Proses Pembalikan Teks Langkah demi Langkah

Izinkan saya menunjukkan dengan tepat bagaimana algoritma pembalikan memproses teks anda:

  1. Mulakan dengan bekas hasil kosong
  2. Baca dari aksara terakhir input anda, bergerak ke belakang
  3. Tambahkan setiap aksara ke hasil semasa anda bergerak
  4. Berhenti apabila anda mencapai aksara pertama
  5. Kembalikan rentetan yang telah dibalikkan

Contoh praktikal dengan "Hello, World!":

1Input: "Hello, World!"
2Langkah 1: Mulakan dengan hasil kosong: ""
3Langkah 2: Ambil aksara terakhir "!" → hasil = "!"
4Langkah 3: Ambil "d" → hasil = "!d"
5Langkah 4: Ambil "l" → hasil = "!dl"
6Langkah 5: Teruskan untuk setiap aksara...
7Output akhir: "!dlroW ,olleH"
8

Algoritma ini melakukan perlakuan yang sama untuk setiap aksara—sama ada huruf, nombor, tanda baca, ruang, atau emoji. Semuanya dikekalkan dalam output yang dibalikkan. Pengendalian yang konsisten inilah sebabnya ia berfungsi dengan baik merentasi pelbagai bahasa dan set aksara.

Kes-Kes Pinggir Yang Perlu Anda Ketahui

Apabila bekerja dengan pembalikan teks, anda akan menemui beberapa kes pinggir yang menarik:

Rentetan kosong: Membalikkan rentetan kosong memberi anda... rentetan kosong. Masuk akal, bukan? Tiada apa untuk dibalikkan.

Satu aksara: Balikkan "A" dan anda dapat "A". Ia adalah balikannya sendiri, sama seperti semua aksara tunggal.

Unicode dan emoji: Inilah tempat perkara menjadi menarik. Algoritma ini mengendalikan Unicode dengan betul, termasuk emoji, aksara Jepun, skrip Arab, dan teks bukan Latin lain. Ujikan dengan "こんにちは 🌍" dan anda akan lihat ia berfungsi dengan betul.

Ruang putih dan aksara khas: Ruang, tab, baris baru, tanda bacaan—semuanya dibalikkan tepat seperti asalnya. "Hello World" (dengan 3 ruang) menjadi "dlroW olleH" (masih 3 ruang).

Teks yang sangat panjang: Untuk input yang sangat besar (bayangkan megabait teks), anda terhad oleh memori yang tersedia. Kebanyakan sistem moden mengendalikan ini dengan baik sehingga beberapa MB, tetapi jika anda memproses fail berukuran gigabait, anda mungkin memerlukan penyelesaian strim dan bukannya memuatkan semuanya ke dalam memori.

Satu perkara yang saya perhatikan: aksara gabungan dan kelompok grafem kadang-kadang boleh berkelakuan di luar jangkaan. Contohnya, emoji dengan pengubah warna kulit secara teknikal mempunyai beberapa titik kod Unicode. Kebanyakan implementasi mengendalikan ini dengan betul, tetapi ia berbaloi untuk diuji dengan kes penggunaan khusus anda jika anda bekerja dengan Unicode yang kompleks.

Kegunaan Sebenar Pembalikan Teks

Anda mungkin terkejut betapa kerap pembalikan teks berlaku dalam amalan. Berikut adalah senario di mana saya pernah melihatnya digunakan:

Pengaturcaraan dan Pembangunan

Semakan palindrom: Apabila anda perlu mengesahkan sama ada perkataan dibaca sama ke hadapan dan ke belakang, anda membalikkannya dan membandingkan. Contohnya "racecar" → "racecar" (sepadan = palindrom).

Latihan algoritma rentetan: Pembalikan teks adalah masalah temu duga pengaturcaraan klasik yang menguji pemahaman anda tentang manipulasi rentetan dan struktur data asas.

Demonstrasi pelaksanaan tindanan: Membalikkan teks adalah contoh sempurna untuk mengajar kelakuan LIFO (Masuk Terakhir-Keluar Pertama) kerana tindanan semula jadi membalikkan urutan.

Kriptografi dan Keselamatan

Pengekodan asas: Walaupun tidak selamat dengan sendirinya, pembalikan teks kadangkala digunakan sebagai satu lapisan dalam skim pengekodan berbilang langkah. Ia lebih kepada pengaburan daripada pengenkripan sebenar.

Sistem cabaran-respons: Sesetengah sistem pengesahan menggunakan rentetan yang dibalikkan sebagai sebahagian daripada proses pengesahan mereka.

Aplikasi Kreatif dan Pendidikan

Permainan perkataan dan teka-teki: Cipta cabaran di mana pemain mengenal pasti perkataan yang dibalikkan atau menghurai mesej. Popular dalam bilik pelarian dan apl teka-teki.

Kesan tulisan cermin: Pereka menggunakan teks yang dibalikkan untuk logo, kesan artistik, atau reka bentuk visual yang merangkumi pantulan.

Alat pengajaran: Apabila menjelaskan manipulasi rentetan kepada pemula, pembalikan teks cukup mudah untuk difahami tetapi kompleks untuk menunjukkan konsep penting seperti pengulangan dan pengendalian tatasusunan.

Analisis Teks

Penyelidikan linguistik: Penyelidik yang mengkaji corak bahasa kadangkala menganalisis teks ke hadapan dan ke belakang untuk mengenal pasti ciri struktur.

Pengesanan corak: Memeriksa kesimetrian dalam teks atau mencari urutan yang dibalikkan yang tersembunyi dalam set data yang lebih besar.

Jenis Pembalikan Teks yang Berbeza

Pembalikan aksara-demi-aksara bukanlah satu-satunya pilihan. Bergantung kepada apa yang anda cuba capai, alternatif ini mungkin lebih sesuai:

Pembalikan perkataan: Kekalkan setiap perkataan dalam keadaan utuh tetapi balikkan susunannya. Berguna untuk pembelajaran bahasa dan tugas pemprosesan teks tertentu.

  • Contoh: "Hello World" → "World Hello"

Pembalikan ayat: Balikkan urutan ayat sambil mengekalkan susunan perkataan dalam setiap ayat.

  • Contoh: "Hello World. How are you?" → "How are you? Hello World."

Pembalikan selektif: Balikkan bahagian tertentu berdasarkan kriteria anda—mungkin hanya vokal, atau hanya perkataan yang lebih panjang daripada 5 aksara. Hebat untuk mencipta teka-teki perkataan atau analisis corak.

  • Contoh: Membalikkan hanya vokal dalam "Hello World" → "Hollo Werld"

Pembalikan fonetik: Digunakan dalam penyelidikan linguistik, ini membalikkan bunyi dan bukannya huruf. Memerlukan transliterasi fonetik terlebih dahulu.

Pembalikan aras bit: Membalikkan representasi binari aksara. Anda akan melihatnya dalam operasi kriptografik tertentu dan manipulasi data tahap rendah.

Sejarah Pembalikan Teks

Pembalikan teks telah wujud jauh lebih lama daripada yang anda sangka—merentasi sistem tulisan purba hingga ke pengkomputeran moden.

Tulisan Purba dan Teks Cermin

Tamadun purba telah mengeksperimen dengan penulisan berarah jauh sebelum komputer wujud. Orang Greek dan Mesir kadangkala menggunakan gaya "boustrophedon", di mana garisan bertukar arah—kiri-ke-kanan, kemudian kanan-ke-kiri, seperti lembu membajak ladang (yang bermaksud "boustrophedon").

Leonardo da Vinci terkenal dengan nota-notanya yang ditulis dengan tulisan cermin, di mana teks kelihatan terbalik. Sejarawan mempertikaikan sama ada ini untuk kerahsiaan, kerana dia adalah kidal dan lebih selesa, atau sekadar untuk mengelakkan noda tinta. Apa pun alasannya, nota-notanya menunjukkan bahawa pembalikan teks telah digunakan sebagai teknik pengkodean selama berabad-abad.

Era Pengkomputeran

Apabila komputer muncul pada tahun 1950-an hingga 1960-an, manipulasi rentetan menjadi latihan pengaturcaraan asas. Pembalikan teks adalah salah satu masalah klasik yang dipelajari setiap pengaturcara, seiring dengan pengurutan dan pencarian.

Yang menjadikannya sangat menarik: pembangunan struktur data tindanan semula jadi berhubung dengan pembalikan teks. Sifat LIFO (Masuk-Terakhir-Keluar-Pertama) tindanan secara automatik membalikkan urutan—tolak "HELLO" aksara demi aksara ke atas tindanan, keluarkan mereka, dan anda akan mendapat "OLLEH". Hubungan yang elegan ini menjadikan pembalikan teks contoh utama untuk mengajar struktur data.

Aplikasi Moden

Hari ini, anda akan menemui algoritma pembalikan teks bekerja di sebalik tabir dalam:

  • Kompiler dan penghurai: Digunakan dalam analisis sintaks dan penilaian ekspresi
  • Algoritma pemadanan rentetan: Seperti algoritma Boyer-Moore yang memproses corak dari kanan ke kiri
  • Kriptografi: Sebagai asas dalam skim enkripsi yang lebih kompleks
  • Pemprosesan bahasa semula jadi: Menganalisis corak linguistik, mengesan palindrom, dan mengkaji struktur teks

Kesederhanaan algoritma ini (ia adalah salah satu yang pertama anda pelajari) digabungkan dengan kegunaannya yang praktikal memastikan ia kekal relevan beberapa dekad selepas implementasi pertamanya.

Contoh Kod: Pembalikan Teks dalam Bahasa Pengaturcaraan Berbeza

Berikut adalah cara melaksanakan pembalikan teks merentasi bahasa pengaturcaraan popular. Setiap contoh menunjukkan algoritma teras serta penggunaan praktikalnya:

1' Fungsi Excel VBA untuk Pembalikan Teks
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' Penggunaan dalam sel:
14' =InvertText("Hello, World!")
15

python original_text = "Hello, World!" inverted_text = invert_text(original_text) print(f"Asal: {original_text}") print(f"Terbalik: {inverted_text}")

Mengendalikan aksara Unicode

unicode_text = "こんにちは世界! 🌍" inverted_unicode = invert_text(unicode_text) print(f"Asal Unicode: {unicode_text}") print(f"Unicode Terbalik: {inverted_unicode}")

1
2

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

// Contoh penggunaan: const originalText = "Hello, World!"; const invertedText = invertText(originalText); console.log(Asal: ${originalText}); console.log(Terbalik: ${invertedText});

// Mengendalikan rentetan kosong console.log(Rentetan kosong terbalik: "${invertText("")}");

// Mengendalikan Unicode const unicodeText = "こんにちは世界! 🌍"; console.log(Asal Unicode: ${unicodeText}); console.log(Unicode Terbalik: ${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 = "Hello, World!";
    String invertedText = invertText(originalText);
    
    System.out.println("Asal: " + originalText);
    System.out.println("Terbalik: " + invertedText);
    
    // Mengendalikan aksara Unicode
    String unicodeText = "こんにちは世界! 🌍";
    String invertedUnicode = invertText(unicodeText);
    System.out.println("Asal Unicode: " + unicodeText);
    System.out.println("Unicode Terbalik: " + invertedUnicode);
}

}

1
2

r invert_text <- function(input_text) {

Tukar kepada vektor aksara, balikkan, dan gabungkan

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

Contoh penggunaan

original_text <- "Hello, World!" inverted_text <- invert_text(original_text) cat("Asal:", original_text, "\n") cat("Terbalik:", inverted_text, "\n")

1
2

matlab function invertedText = invertText(inputText) % Fungsi untuk membalikkan urutan aksara dalam rentetan invertedText = inputText(end:-1:1); end

% Contoh penggunaan originalText = 'Hello, World!'; invertedText = invertText(originalText); fprintf('Asal: %s\n', originalText); fprintf('Terbalik: %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 = "Hello, World!"; std::string invertedText = invertText(originalText);

std::cout << "Asal: " << originalText << std::endl;
std::cout << "Terbalik: " << invertedText << std::endl;

// Mengendalikan rentetan kosong
std::cout << "Rentetan kosong terbalik: \"" << invertText("") << "\"" << std::endl;

return 0;

}

1
2

ruby def invert_text(input_text) input_text.reverse end

Contoh penggunaan

original_text = "Hello, World!" inverted_text = invert_text(original_text) puts "Asal: #{original_text}" puts "Terbalik: #{inverted_text}"

Mengendalikan aksara Unicode

unicode_text = "こんにちは世界! 🌍" inverted_unicode = invert_text(unicode_text) puts "Asal Unicode: #{unicode_text}" puts "Unicode Terbalik: #{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 = "Hello, World!"; let inverted_text = invert_text(original_text);

println!("Asal: {}", original_text);
println!("Terbalik: {}", inverted_text);

// Mengendalikan aksara Unicode
let unicode_text = "こんにちは世界! 🌍";
let inverted_unicode = invert_text(unicode_text);
println!("Asal Unicode: {}", unicode_text);
println!("Unicode Terbalik: {}", 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 = "Hello, World!";
    string invertedText = InvertText(originalText);
    
    Console.WriteLine($"Asal: {originalText}");
    Console.WriteLine($"Terbalik: {invertedText}");
    
    // Mengendalikan rentetan kosong
    Console.WriteLine($"Rentetan kosong terbalik: \"{InvertText("")}\"");
    
    // Mengendalikan aksara Unicode
    string unicodeText = "こんにちは世界! 🌍";
    string invertedUnicode = InvertText(unicodeText);
    Console.WriteLine($"Asal Unicode: {unicodeText}");
    Console.WriteLine($"Unicode Terbalik: {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 := "Hello, World!" invertedText := invertText(originalText)

fmt.Printf("Asal: %s\n", originalText)
fmt.Printf("Terbalik: %s\n", invertedText)

// Mengendalikan aksara Unicode
unicodeText := "こんにちは世界! 🌍"
invertedUnicode := invertText(unicodeText)
fmt.Printf("Asal Unicode: %s\n", unicodeText)
fmt.Printf("Unicode Terbalik: %s\n", invertedUnicode)

}

1
2

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

// Contoh penggunaan let originalText = "Hello, World!" let invertedText = invertText(originalText)

print("Asal: (originalText)") print("Terbalik: (invertedText)")

// Mengendalikan aksara Unicode let unicodeText = "こんにちは世界! 🌍" let invertedUnicode = invertText(unicodeText) print("Asal Unicode: (unicodeText)") print("Unicode Terbalik: (invertedUnicode)")


## Petua Pengoptimuman Prestasi

Jika anda bekerja dengan pembalikan teks dalam kod produksi, berikut adalah faktor prestasi yang perlu dipertimbangkan:

**Penggunaan memori**: Membuat salinan yang dibalikkan memerlukan memori sama dengan saiz input anda. Untuk rentetan kecil hingga sederhana (di bawah 1 MB), ini boleh diabaikan. Untuk teks yang lebih besar, anda sedang menggandakan penggunaan memori sementara.

**Pembalikan di tempat**: Bahasa seperti C, C++, dan Rust membolehkan anda membalikkan tatasusunan aksara terus dalam memori tanpa membuat salinan. Ini mengurangkan penggunaan memori sebanyak separuh tetapi hanya berfungsi dengan rentetan yang boleh diubah. Banyak bahasa (Python, JavaScript, Java) menggunakan rentetan yang tidak boleh diubah, jadi anda terpaksa membuat yang baru.

**Pengendalian Unicode**: Inilah tempat di mana perkara menjadi rumit. Aksara Unicode berbyte perlu dikendalikan dengan betul atau anda akan merosakkan pengekodan. Kebanyakan perpustakaan standard bahasa moden mengendalikannya dengan betul, tetapi jika anda menulis kod tahap rendah atau bekerja dengan tatasusunan bait terus, berhati-hati. Uji dengan emoji dan skrip bukan Latin untuk mengesahkan.

**Penstriman untuk fail besar**: Jika anda membalikkan fail log atau set data berukuran gigabait, jangan memuatkan semua ke dalam memori. Gunakan pendekatan penstriman—baca kepingan dari hujung, tulis semasa anda pergi. Menurut [Standard Teknikal Unicode #18](https://unicode.org/reports/tr18/), pengendalian kelompok grafem memerlukan perhatian khas untuk pengesanan sempadan teks yang betul.

**Penggunaan selari**: Untuk rentetan yang sangat panjang, anda secara teori boleh membalikkan secara selari (bahagikan kepada kepingan, balikkan setiap satu, gabungkan). Dalam amalan, overhed biasanya tidak berbaloi kecuali anda berurusan dengan set data gergasi dan mempunyai sumber pengiraan yang mencukupi.

## Soalan Lazim

### Bagaimana saya boleh membalikkan teks dalam talian?

Hanya tampal atau taip teks anda ke dalam ruang input di atas. Alat ini membalikkan teks secara automatik dalam masa sebenar—tiada keperluan mengklik butang apa pun. Salin hasilnya dengan satu klik.

### Apakah perbezaan antara membalikkan teks dan membalikkan perkataan?

Pembalikan teks (pembalikan aksara) membalikkan aksara individu: "Hello World" → "dlroW olleH". Pembalikan perkataan mengekalkan setiap perkataan utuh tetapi membalikkan susunannya: "Hello World" → "World Hello". Alat ini melakukan pembalikan aksara.

### Bolehkah alat ini mengendalikan emoji dan aksara Unicode?

Ya. Alat ini dengan betul mengendalikan semua aksara Unicode termasuk emoji, teks Cina/Jepun/Korea, skrip Arab, simbol khas, dan aksara gabungan. Cuba dengan "こんにちは 🌍" untuk melihatnya sendiri.

### Adakah teks yang dibalikkan sama dengan tulisan cermin?

Ia berkaitan tetapi tidak sama. Pembalikan aksara (yang dilakukan alat ini) hanya membalikkan susunan aksara. Tulisan cermin membalikkan aksara secara mendatar supaya kelihatan seperti pantulan cermin. Untuk membaca tulisan cermin, anda memerlukan cermin sebenar atau pembalikan mendatar.

### Mengapa saya perlu membalikkan teks?

Kegunaan biasa termasuk: menyemak palindrom, membuat penyulihan mudah untuk teka-teki, menjana data ujian untuk pengaturcaraan, mencipta kesan teks artistik, mengajar algoritma rentetan, dan menyahpepijat kod pemprosesan teks.

### Adakah membalikkan teks dua kali memberikan saya teks asal semula?

Ya. Pembalikan teks adalah operasi songsangnya sendiri. Jika anda membalikkan "Hello" untuk mendapatkan "olleH", kemudian membalikkan "olleH", anda mendapat "Hello" semula. Secara matematikal, ini dipanggil involuasi.

### Berapa pantas pembalikan teks?

Ia sangat pantas—kompleksiti masa linear O(n) di mana n adalah panjang teks. Untuk teks biasa (beberapa perenggan), pemprosesan adalah serta-merta. Walaupun untuk teks yang sangat panjang (ribuan perkataan), komputer moden mengendalikannya dalam milisaat.

### Bolehkah saya membalikkan teks dalam Excel atau Google Sheets?

Ya, tetapi anda memerlukan fungsi khusus kerana tiada fungsi pembalikan terbina dalam. Semak bahagian contoh kod di atas untuk pelaksanaan Excel VBA dan pengaturcaraan lain.

## Rujukan Teknikal

1. Knuth, D. E. (1997). *Seni Pengaturcaraan Komputer, Jilid 1: Algoritma Asas* (Ed. ke-3). Addison-Wesley Professional.

2. Sedgewick, R., & Wayne, K. (2011). *Algoritma* (Ed. ke-4). Addison-Wesley Professional.

3. Unicode Consortium. *Piawai Teknikal Unicode #18: Ekspresi Biasa Unicode*. Tersedia di: https://unicode.org/reports/tr18/

4. MDN Web Docs. *Rujukan Kaedah String*. Mozilla Developer Network. Tersedia di: 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). *Pengenalan kepada Algoritma* (Ed. ke-3). MIT Press.