?題目描述
【5鍵鍵盤的輸出】有一個特殊的 5鍵鍵盤,上面有 a,ctrl-c,ctrl-x,ctrl-v,ctrl-a五個鍵。
a鍵在屏幕上輸出一個字母 a;
ctrl-c將當前選擇的字母復制到剪貼板;
ctrl-x將當前選擇的 字母復制到剪貼板,并清空選擇的字母;
ctrl-v將當前剪貼板里的字母輸出到屏幕;
ctrl-a 選擇當前屏幕上所有字母。
注意:
1、剪貼板初始為空,新的內容被復制到剪貼板時會覆蓋原來的內容
2、當屏幕上沒有字母時,ctrl-a無效
3、當沒有選擇字母時,ctrl-c和 ctrl-x無效
4、當有字母被選擇時,a和ctrl-v這兩個有輸出功能的鍵會先清空選擇的字母,再進行輸出
給定一系列鍵盤輸入,輸出最終屏幕上字母的數量。
輸入描述:
輸入為一行,為簡化解析,用數字 12345代表 a,ctrl-c,ctrl-x,ctrl-v,ctrl-a五個鍵的輸入,數字用空格分隔
輸出描述:
輸出一個數字,為最終屏目上字母的數量。
示例:
輸入
111
輸出
3
代碼實現
# coding:utf-8class Solution:def keyBoard(self, s):screen = ''clip = ''selected = Falsefor i in s:if i == '1' and not selected:screen += 'a'elif i == '1' and selected:screen = 'a'selected = Falseelif i == '2' and selected and screen:clip = screenelif i == '3' and selected and screen:clip = screenscreen = ''selected = Falseelif i == '4' and selected:screen += clipselected = Falseelif i == '5' and screen:selected = Truereturn len(screen)if __name__ == '__main__':s = input("input:")solution = Solution()print(solution.keyBoard(s))