博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
手机键盘
阅读量:2352 次
发布时间:2019-05-10

本文共 1688 字,大约阅读时间需要 5 分钟。

 

                                                              手机键盘

                                                                   Time Limit: 1000 ms Memory Limit: 65536 KiB

Problem Description

大家应该都见过那种九键的手机键盘,键盘上各字母的分布如下图所示。

当我们用这种键盘输入字母的时候,对于有些字母,往往会需要按多次键才能输入。

比如:a, b, c 都在“2”键上,输入 a 只需要按一次,而输入 c 需要连续按三次。

连续输入多个字母的规则如下:

1、如果前后两个字母不在同一个按键上,则可在输入前一个字母之后直接输入下一个字母,如:ad 需要按两次键盘,kz 需要按 6 次。

2、如果前后两个字母在同一个按键上,则输入完前一个字母之后需要等待一段时间才能输入下一个字母,如 ac,在输入完 a 之后,需要等一会儿才能输入 c。

现在假设每按一次键盘需要花费一个时间段,等待时间需要花费两个时间段。

现在给出一串只包含小写英文字母的字符串,计算出输入它所需要花费的时间。

Input

 

输入包含多组测试数据,对于每组测试数据:

输入为一行只包含小写字母的字符串,字符串长度不超过100。

Output

 

对于每组测试数据,输出需要花费的时间。

Sample Input

bobwww

Sample Output

77
import java.util.*;class Point{	String str;	public Point(String str)	{		this.str = str;	}}public class Main{	public static void main(String [] args)	{		Scanner reader = new Scanner(System.in);		Point [] Str = {				new Point("abc"),				new Point("def"),				new Point("ghi"),				new Point("jkl"),				new Point("mno"),				new Point("pqrs"),				new Point("tuv"),				new Point("wxyz"),		};		while(reader.hasNext())		{			int ans = 0;			int k = 0;			String str;			str = reader.nextLine();			for(int i = 0; i <= str.length() - 1; i++)			{				if(i == 0)				{					for(int j = 0; j <= 7; j++)					{						if(Str[j].str.indexOf(str.charAt(i)) != -1)						{							ans += Str[j].str.indexOf(str.charAt(i)) + 1;							k = j;							break;						}					}				}				else 				{					if(Str[k].str.indexOf(str.charAt(i)) != -1)					{						ans += 2;						ans += Str[k].str.indexOf(str.charAt(i)) + 1;					}					else					{						for(int j = 0; j <= 7; j++)						{							if(Str[j].str.indexOf(str.charAt(i)) != -1)							{								ans += Str[j].str.indexOf(str.charAt(i)) + 1;								k = j;								break;							}						}					}				}			}			System.out.println(ans);		}		reader.close();	}}

 

转载地址:http://jnwtb.baihongyu.com/

你可能感兴趣的文章
FTP连接阿里云不能获得列表目录等功能,能连接,21端口也打开了。原因FTP是双向的,阿里云入出方向安全组规则必须添加本地随机端口
查看>>
读书程序标准化建模--高效阅读学习,越学越有劲/趣
查看>>
不翻qiang搞定Android Studio Google库加载不下来的问题 打包生成apk android studio 3.2打灰机程序源码带详细注释
查看>>
仿照利用android系统源码资源文件,修改SeekBar颜色 前景与背景
查看>>
printf及String.format格式化测试
查看>>
android java 经典字符模式通信接收处理,标准modbus通讯协议接收处理提取数据
查看>>
10055自动进刀水钻机android蓝牙2.0SSP项目源码结构使用说明【版本更新、自动连接、控件批量处理、接收解析】
查看>>
Android Studio导入项目时常见问题的解决汇总,Eclipse项目转为Android Studio项目步骤报错万能解决方法汇总
查看>>
Widget.Material.Light.ProgressBar.Horizontal" (10302b8) is not a Drawable (color or path)错误解决
查看>>
解决java中文乱码,编码识别测试,汇总
查看>>
android定时,延时,倒计时源码
查看>>
Eclipse导入项目时常见问题解决汇总, Android Studio转为Eclipse项目问题汇总
查看>>
com.android.dex.DexIndexOverflowException
查看>>
AndroidStudio一个工程内查看多个项目的实现
查看>>
Gradle Build速度加快终极方法
查看>>
Could not find class 'com.umeng.analytics.d' 解决的方案分享
查看>>
谷歌游览器模拟手机请求网站测试
查看>>
在Fragment中OnActivityResult方法中接收Activity中返回的值
查看>>
外包采用Gradle生成多套app打包
查看>>
iOS和Android的app界面设计规范
查看>>