Пробегаемся циклом по длине строки. Для каждого символа строки может быть два варианта:
1) если нужно сдвинуть символ еще с конца алфавита (например, B при k=3 нужно двигать еще и от конца)
2) если нужно просто подвинуть символ.
Зная, что сдвиг происходит влево (что видно на примере) и что большие латинские буквы в таблице символов ASCII находятся в диапазоне [65..90], сделаем следующее:
1) если код символа минус k больше либо равен 65 (ord(s[i])-k>=65 - то есть не надо двигать с конца), то выводим chr(ord(s[i])-k) (ф-ия chr возвращает символ по коду)
2) в остальных случаях заводим переменную (например, переменную o), в которой будем хранить ord(s[i])-65, а затем выведем на экран chr(90-(k-o)+1).