九度OJ 1079 手机键盘
题目地址:http://ac.jobdu.com/problem.php?pid=1079
- 题目描述:
-
按照手机键盘输入字母的方式,计算所花费的时间如:a,b,c都在“1”键上,输入a只需要按一次,输入c需要连续按三次。如果连续两个字符不在同一个按键上,则可直接按,如:ad需要按两下,kz需要按6下如果连续两字符在同一个按键上,则两个按键之间需要等一段时间,如ac,在按了a之后,需要等一会儿才能按c。现在假设每按一次需要花费一个时间段,等待时间需要花费两个时间段。现在给出一串字符,需要计算出它所需要花费的时间。
- 输入:
-
一个长度不大于100的字符串,其中只有手机按键上有的小写字母
- 输出:
-
输入可能包括多组数据,对于每组数据,输出按出Input所给字符串所需要的时间
- 样例输入:
-
bob
www
- 样例输出:
-
7
7
/*
* Main.c
*
* Created on: 2014年1月27日
* Author: Shaobo
*/
#include <stdio.h>
#include <string.h> int getkey (char ch){
if (ch >= 'a' && ch <= 'c') return 0;
if (ch >= 'd' && ch <= 'f') return 1;
if (ch >= 'g' && ch <= 'i') return 2;
if (ch >= 'j' && ch <= 'l') return 3;
if (ch >= 'm' && ch <= 'o') return 4;
if (ch >= 'p' && ch <= 's') return 5;
if (ch >= 't' && ch <= 'v') return 6;
if (ch >= 'w' && ch <= 'z') return 7;
} int main(void){
char keyboard[8] = {'a', 'd', 'g', 'j', 'm', 'p', 't', 'w'};
char input[101];
int len, i, former, key, time; while (scanf ("%s", input) != EOF){
len = strlen(input);
former = -1;
time = 0;
for (i=0; i<len; ++i){
key = getkey(input[i]);
if (key == former)
time += 2;
time += (input[i] - keyboard[key] + 1);
former = key;
}
printf ("%d\n", time);
} return 0;
}
九度OJ 1079 手机键盘的更多相关文章
- 九度OJ 1079:手机键盘 (翻译)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:2279 解决:1233 题目描述: 按照手机键盘输入字母的方式,计算所花费的时间 如:a,b,c都在"1"键上,输入a只 ...
- 九度oj 题目1087:约数的个数
题目链接:http://ac.jobdu.com/problem.php?pid=1087 题目描述: 输入n个整数,依次输出每个数的约数的个数 输入: 输入的第一行为N,即数组的个数(N<=1 ...
- 九度OJ 1502 最大值最小化(JAVA)
题目1502:最大值最小化(二分答案) 九度OJ Java import java.util.Scanner; public class Main { public static int max(in ...
- 九度OJ,题目1089:数字反转
题目描述: 12翻一下是21,34翻一下是43,12+34是46,46翻一下是64,现在又任意两个正整数,问他们两个数反转的和是否等于两个数的和的反转. 输入: 第一行一个正整数表示测试数据的个数n. ...
- 九度OJ 1500 出操队形 -- 动态规划(最长上升子序列)
题目地址:http://ac.jobdu.com/problem.php?pid=1500 题目描述: 在读高中的时候,每天早上学校都要组织全校的师生进行跑步来锻炼身体,每当出操令吹响时,大家就开始往 ...
- 九度OJ 1531 货币面值(网易游戏2013年校园招聘笔试题) -- 动态规划
题目地址:http://ac.jobdu.com/problem.php?pid=1531 题目描述: 小虎是游戏中的一个国王,在他管理的国家中发行了很多不同面额的纸币,用这些纸币进行任意的组合可以在 ...
- 九度OJ 1024 畅通工程 -- 并查集、贪心算法(最小生成树)
题目地址:http://ac.jobdu.com/problem.php?pid=1024 题目描述: 省政府"畅通工程"的目标是使全省任何两个村庄间都可以实现公路交通(但 ...
- 九度OJ 1371 最小的K个数 -- 堆排序
题目地址:http://ac.jobdu.com/problem.php?pid=1371 题目描述: 输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4 ...
- 九度OJ 题目1384:二维数组中的查找
/********************************* * 日期:2013-10-11 * 作者:SJF0115 * 题号: 九度OJ 题目1384:二维数组中的查找 * 来源:http ...
随机推荐
- 神奇的问题记录【SqlDataAdapter Fill DataSet】
今天发现程序中有一张报表查询速度很慢[全条件要二分钟左右],查找相关原因,准备进行优化处理.注:报表调用存储过程,存储过程返回两个table就有以下神奇的故事: 直接将SQL语句在SSMS中执行发现全 ...
- hdoj 1702 ACboy needs your help again!【数组模拟+STL实现】
ACboy needs your help again! Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K ( ...
- Mysql常见问题及优化
本文将就以下三个问题进行展开: 1.库表设计 2.慢 SQL 问题 3.误操作.程序 bug 时怎么办 一.库表设计 1.1 引擎选择 在 mysql 5.1 中,引入了新的插件式存储引擎体系结构,允 ...
- 51nod1009(1的数目)
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1009 题意:中文题诶- 思路:分别考虑各个数位上出现1的次数 ...
- 【python自动化第十一篇】
[python自动化第十一篇:] 课程简介 gevent协程 select/poll/epoll/异步IO/事件驱动 RabbitMQ队列 上节课回顾 进程: 进程的诞生时为了处理多任务,资源的隔离, ...
- Oracle的commit详解(转)
java通过jdbc thin方式连接数据库后,对数据库操作时会出现以下两种情况,我这可能记录不全: 1.在sqlplus中查询得到和java终端中输出的查询结果不同 2.执行某些sql语句卡住不动 ...
- 淘宝HSF服务的原理以及简单的实现
淘宝HSF服务具体来说分三个应用:api接口,service服务,本地应用. 最基本的Api服务应该是十分干净的,不含方法,只有接口.它是要被打包(jar包的形式)到中央仓库去的. service服务 ...
- 走进C++程序世界-----继承和派生(2)
覆盖基类的函数 覆盖基类函数顾名思义就是在派生类中对基类的函数进行的重新定义.这里将会讲到下面的2个知识点: 1.隐藏基类的方法 2.调用基类的方法(隐式和显示调用基类的方法) /* *derive2 ...
- Eclipse使用新手教程
说起java的IDE,朗朗上口的无非是Eclipse了,假若能熟练Eclipse,对于我们编写java程序会起到事半功倍的效果,大大提高我们工作效率.因此本篇博文,笔者仅仅是针对刚刚入门java的新手 ...
- 使用new分配内存的类需要自己定义拷贝构造函数
13.22 假定我们希望HasPtr的行为像一个值.即,对于对象所指向的string成员,每个对象都有一份自己的拷贝. #include<iostream> #include<str ...