4.67_Kode_Morse_Tanpa_Spasi

This commit is contained in:
202410715046 ARSYA PUTRA CHAIRULLOH 2025-05-10 16:16:54 +07:00
commit 47fb9155d0

View File

@ -0,0 +1,63 @@
# -*- coding: utf-8 -*-
"""TUGAS Individu Kode Morse Tanpa Spasi.FINAL
Automatically generated by Colab.
Original file is located at
https://colab.research.google.com/drive/1vfw0sfJfrg_jWdWWbvvaSPgnxQCvSK1T
"""
# Daftar kode Morse standar
MORSE_CODES = {
"A": ".-", "B": "-...", "C": "-.-.", "D": "-..", "E": ".", "F": "..-.",
"G": "--.", "H": "....", "I": "..", "J": ".---", "K": "-.-", "L": ".-..",
"M": "--", "N": "-.", "O": "---", "P": ".--.", "Q": "--.-", "R": ".-.",
"S": "...", "T": "-", "U": "..-", "V": "...-", "W": ".--", "X": "-..-",
"Y": "-.--", "Z": "--..", "1": ".----", "2": "..---", "3": "...--",
"4": "....-", "5": ".....", "6": "-....", "7": "--...", "8": "---..",
"9": "----.", "0": "-----", ".": ".-.-.-", ",": "--..--", "?": "..--..",
"'": ".----.", "!": "-.-.--", "/": "-..-.", "(": "-.--.", ")": "-.--.-",
"&": ".-...", ":": "---...", ";": "-.-.-.", "=": "-...-", "+": ".-.-.",
"-": "-....-", "_": "..--.-", "\"": ".-..-.", "$": "...-..-", "@": ".--.-."
}
def is_valid_morse_code(morse_code: str) -> bool:
# Validasi bahwa kode hanya berisi karakter . dan -
return all(char in ".-" for char in morse_code)
def count_valid_insertions(morse_code: str) -> int:
# Jika kode hanya terdiri dari 1 karakter, hasilnya adalah 0
if len(morse_code) <= 1:
return 0
# Fungsi rekursif untuk menghitung kemungkinan penyisipan spasi
def helper(index):
# Jika kita telah mencapai akhir kode, kembalikan 1 sebagai 1 kemungkinan valid
if index == len(morse_code):
return 1
# Hitung jumlah kemungkinan dari posisi ini
total = 0
# Pertimbangkan semua kemungkinan potongan yang valid
for i in range(index + 1, len(morse_code) + 1):
# Rekursi ke kemungkinan berikutnya
total += helper(i)
return total
# Hitung semua kemungkinan mulai dari indeks pertama
return helper(0) - 1 # Kurangi 1 karena kita tidak menghitung kemungkinan tanpa spasi sama sekali
# Input kode Morse tanpa spasi
morse_code = input("Masukkan kode Morse tanpa spasi (maksimal 20 karakter): ")
# Validasi panjang karakter
if len(morse_code) > 20:
print("Kode Morse terlalu panjang. Maksimal 20 karakter.")
elif not is_valid_morse_code(morse_code):
print("Kode Morse tidak valid. Pastikan hanya menggunakan karakter . dan -.")
else:
# Hitung jumlah total kemungkinan penyisipan spasi yang valid
result = count_valid_insertions(morse_code)
print(f"Jumlah total kemungkinan penyisipan spasi yang valid: {result}")