清華機試oj——手機按鍵
題目描述
按照手機鍵盤輸入字母的方式,計算所花費的時間如:a,b,c都在“1”鍵上,輸入a只需要按一次,輸入c需要連續按三次。如果連續兩個字元不在同一個按鍵上,則可直接按,如:ad需要按兩下,kz需要按6下如果連續兩字元在同一個按鍵上,則兩個按鍵之間需要等一段時間,如ac,在按了a之後,需要等一會兒才能按c。現在假設每按一次需要花費一個時間段,等待時間需要花費兩個時間段。現在給出一串字元,需要計算出它所需要花費的時間。
輸入描述:
一個長度不大於100的字串,其中只有手機按鍵上有的小寫字母
輸出描述:
輸入可能包括多組資料,對於每組資料,輸出按出Input所給字串所需要的時間
示例1
輸入
bob www
輸出
7 7
解題思路
首先使用兩個陣列,一個來記錄不考慮連不連續的情況下每個字母應該按幾下,另一個陣列用來記錄哪些字母使位於相同的按鍵上的。然後遍歷字串,既要考慮當前的字母需要按幾下,還要考慮和上一個字母是否在同一個按鍵,所以還需要一個char型的中間變數儲存上一個字母。
程式碼實現
#include<bits/stdc++.h>
using namespace std;
int eachtime[26] = {1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,4,1,2,3,1,2,3,4};//每一個字母對應需要按下的次數
int group[26] = {1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,6,7,7,7,8,8,8,8};//一共八組,用來判斷是否在一個按鈕上
int main(){
string str;
while(cin >> str){
int time = 0;
char pre = '*';//記錄上一個字元,初始化為26字母以外的隨便一個字元
for(int i = 0; i < str.length(); i++){
if(group[str[i]-'a'] == group[pre-'a']){
time += 2;
}
time += eachtime[str[i]-'a'];
pre = str[i];
}
cout << time << endl;
}
return 0;
}
繼續加油吧ヾ(◍°∇°◍)ノ゙
相關文章
- 二、zigbee裸機程式--按鍵
- 機械臂測試手機機械臂
- 華為手機相關的股票有哪些 華為手機股票一覽
- 華為機試 (11/8)
- Android 隱藏手機鍵盤Android
- 四款華為麒麟710智慧手機推薦 華為麒麟710手機有哪些?
- 6款最具價效比華為手機推薦 華為手機哪款好?
- 試用清華Chatglm智慧體智慧體
- 技嘉主機板進入bios按哪個鍵 技嘉主機板u盤啟動按f幾iOS
- 曝光了,清華計算機系最牛的課!計算機
- 華為手機盲人模式怎麼關閉?華為手機盲人模式的關閉方法模式
- 望周知,手機維修你還擔心隱私洩露嘛?華為手機一鍵開啟維修模式模式
- 智慧化手機測試
- 華為榮耀手機怎麼分屏?華為手機3個啟動“分屏”功能的技巧
- 華為手機怎麼控制空調開關?華為手機遙控空調的操作
- 華為2020年的手機會有哪些特點?華為2020年的手機預測
- 華為B5手環怎麼連線手機?華為手環B5連線手機操作教程
- 牛客網--華為機試題
- 華為機試-取近似值
- 華為手機耗電快是怎麼回事?華為手機耗電太快的解決方法
- 華為手機影片刪除了怎麼恢復?華為手機影片刪除了的恢復方法
- 華為手機緊急聯絡人使用教程 華為手機緊急呼叫怎麼設定?
- 讓機器準確「看懂」手物互動動作,清華大學等提出GeneOH Diffusion方法
- 華碩主機板u盤啟動按f幾做系統 華碩主機板是按f多少進bios啟動u盤2022iOS
- 華為手環耳機模式適配模式
- 華為手機桌面角標開發
- 華為5i手機怎麼截圖?華為5i手機的集中截圖方法
- win10關機按鍵只有關機重啟睡眠沒有登出怎麼辦Win10
- 阿里安全聯手清華大學組織“騙人大賽” 為優勝者提供工作機會阿里
- 華為機試題刷題總結
- 華為千元手機哪款好?華為最值得購買的千元手機推薦
- 華碩主機板u盤啟動按f幾 華碩主機板怎麼設定u盤啟動
- win10關機快捷鍵怎麼按 win10系統怎麼快捷關機Win10
- 華納app手機下載v加-44138926APP
- 華納娛樂手機版下載-19188190807
- 華為手機如何連線到電腦
- MobData:華為手機使用者畫像
- 清華趙明國:智慧人形機器人≠智慧+人形 | 智者訪談機器人