defkeyword_cipher_case_sensitive(keyword, text): keyword_upper = keyword.upper() seen = set() keyword_processed = [] for char in keyword_upper: if char notin seen and char.isalpha(): seen.add(char) keyword_processed.append(char)
remaining = [chr(i) for i inrange(65, 91) ifchr(i) notin seen] cipher_upper = keyword_processed + remaining cipher_lower = [c.lower() for c in cipher_upper]
plain_upper = [chr(i) for i inrange(65, 91)] plain_lower = [c.lower() for c in plain_upper]
result = [] for char in text: if char in map_upper: result.append(map_upper[char]) elif char in map_lower: result.append(map_lower[char]) else: result.append(char) return''.join(result)