考研每日一題4 手機鍵盤(C )

2021-10-04 05:50:09 字數 1163 閱讀 9099

按照手機鍵盤輸入字母的方式,計算所花費的時間 如:a,b,c都在「1」鍵上,輸入a只需要按一次,輸入c需要連續按三次。 如果連續兩個字元不在同乙個按鍵上,則可直接按,如:ad需要按兩下,kz需要按6下 如果連續兩字元在同乙個按鍵上,則兩個按鍵之間需要等一段時間,如ac,在按了a之後,需要等一會兒才能按c。 現在假設每按一次需要花費乙個時間段,等待時間需要花費兩個時間段。 現在給出一串字元,需要計算出它所需要花費的時間。

輸入描述:

乙個長度不大於100的字串,其中只有手機按鍵上有的小寫字母
輸出描述:

輸入可能包括多組資料,對於每組資料,輸出按出input所給字串所需要的時間
輸入

bob

www

輸出

7

7

對於乙個曾經用老年機qq聊天手速比其他同學電腦還快的人,這題我太熟悉不過了23333

那不熟悉的人通過題目應該也能讀懂,先看你手機上的九鍵,「2」上面是「abc」,那如果要選定a只要按一下2,如果選定b的話要按兩下,第一下說明在abc中,第二下表示在第二個。那手機九鍵的對應關係分別是:

2-abc

3-def

4-ghi

5-jkl

6-mno

7-pqrs

8-tuv

9-wxyz

所以我們只需要用乙個二維的東西來確定字母位置就行。這裡我還是選擇用結構體比較方便。

然後每到乙個字母就先比較和之前的字母在不在乙個鍵上,然後加上它的位置就可以了。

#include#includeusing namespace std;

struct zm

z[26];

void init()//初始化結構體

每日一題 鍵盤行

給你乙個字串陣列 words 只返回可以使用在 美式鍵盤 同一行的字母列印出來的單詞。鍵盤如下圖所示。美式鍵盤 中 第一行由字元 qwertyuiop 組成。第二行由字元 asdfghjkl 組成。第三行由字元 zxcvbnm 組成。示例 1 輸入 words hello alaska dad pe...

每日一題(4)

思路 先用快慢指標找到鍊錶的中點,然後翻轉鍊錶後半部分,再和前半部分組合。注意 把鍊錶分成兩半時,前半段的尾節點要置為null,翻轉鍊錶時也要把尾節點置為null。definition for singly linked list.struct listnode class solution 此時的...

C 每日一題

題目 給定乙個陣列 nums 和乙個值 val 你需要原地移除所有數值等於 val 的元素,返回移除後陣列的新長度。不要使用額外的陣列空間,你必須在原地修改輸入陣列並在使用 o 1 額外空間的條件下完成,oj鏈結.解析 我們來解析一下這個題目的做題思路,他的含義就是讓我們刪除掉陣列中的元素,然後將陣...