Delete tugas_individu_kode_morse_tanpa_spasi_final.py
This commit is contained in:
parent
2235db0c18
commit
cad4514f41
@ -1,63 +0,0 @@
|
||||
# -*- 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}")
|
Loading…
x
Reference in New Issue
Block a user