You are invited to participate in an encryption algorithm competition. Encryption is a method to change the formation of the message using pre-defined rules. After encryption, the message becomes secure and illegible. Develop a program that takes user input as a string sentence and prints its encryption version using the following rules:

Questions & AnswersCategory: Programming LanguageYou are invited to participate in an encryption algorithm competition. Encryption is a method to change the formation of the message using pre-defined rules. After encryption, the message becomes secure and illegible. Develop a program that takes user input as a string sentence and prints its encryption version using the following rules:
Rida Fatima asked 1 year ago

You are invited to participate in an encryption algorithm competition.

Encryption is a method to change the formation of the message using pre-defined rules.

After encryption, the message becomes secure and illegible.

Develop a program that takes user input as a string sentence and prints its encryption version using the following rules:

  • You must include your ID, name and section number as sample input.
  • The program should also include your ID as a prefix to all input sentences.
  • Each word should be encrypted separately.
  • If a word starts with consonant letter, then that word should be shifted two places in circular way. For example, “trend” become “ndtre”, “brown” become “wnbro”, etc.
  • Also, aftershifting, do append “ay” at the end of the word. So, a word “trend” become “ndtreay”.
  • If a word starts with a vowel letter, then it should be encrypted by simply appending “way”. For example, “end” becomes “endway”.
  • The letter ‘y’ is a treated as a consonant if it appears as the first letter of a word (yard ->rdyaay).
  • As a vowel if it appears at an interior location (at mid or somewhere) take consonants before the first vowel shift to end. Eg: crybaby-> abycrybay
  • Also, “sch” at the beginning should become “sk” at the end. Eg: schooner -> oonerskay
  • Capitalized words should be capitalized after transformation. Eg: Sam -> Amsay A sample input is: “Brown fox jumps a yard.” after encryption “22k-1234 Wnbroay oxfay psjumay away rdyaay.”
1 Answers
Lokesh Kumar Staff answered 1 year ago
str_name = input("Enter String: ")
u_id = 2
# name = 'trend'
sec_num = 10
in_str = str(u_id) + str_name + str(sec_num)
res_str = ''
user_id = ''
act_str = ''
res_str_list = []
sch_flag = False
y_flag = False
sch_flag = False
for i in in_str:
    if i.isalpha():
        act_str += i
act_str = act_str.strip()
alpha_num_str = in_str.split(act_str)
if len(alpha_num_str)>1:
    sec_str = alpha_num_str[1]
    user_id = alpha_num_str[0]
elif len(alpha_num_str)==1:
    user_id = alpha_num_str[0]
    sec_str = None
else:
    user_id = None

actual_list = list(act_str)
act_list = list(act_str.lower())

if list('sch') == act_list[:3]:
    sch_flag = True


vowel_list = ['a', 'i', 'o', 'e', 'u']

# if first aplhabet is vowel
if act_list[0].lower() in vowel_list:
    res_str_list = act_list[:]
    res_str_list.extend(['w', 'a', 'y'])


# if first alphabet is constant
if act_list[0].lower() not in vowel_list:
    if sch_flag:
        act_list = act_list[3:]
    res_str_list = act_list[:]
    for i in range(len(act_list)):
        if i>0:
            if 'y' in act_list[i:]:
                y_flag = True    
            else:
                y_flag = False
        if y_flag:
            if act_list[i].lower() in vowel_list:
                res_str_list = act_list[i:]
                res_str_list.extend(act_list[:i])
            else:
                pass
        else:
            index_i  = (i+2) - len(act_list)
            res_str_list.remove(act_list[i])
            res_str_list.insert(index_i, act_list[i].lower())
    if sch_flag:
        res_str_list.extend(['s','k'])
    res_str_list.extend(['a', 'y'])


res_str = user_id + '-' + str(sec_num) + ' ' + ''.join(res_str_list)
print(f"Input String: {in_str}")
print(f"Output: {res_str}")       

https://gist.github.com/LokeshKumarES/9fd3a218281669c9f7a48005720031f3