题解 | #WERTYU#

WERTYU

https://www.nowcoder.com/practice/0f318e6fffe3490cb700e16b65a93b1b

不需要上一行的键盘输入,即一个键可以输入两种字符时,只需要普通输入的字符就好,不需要shift输入。

暴力解:

  1. 把键盘存成一个数组;
  2. 判断当前字符是否是空格,不是则查询数组,并输出数组中该字符的上一个单元的字符;
  3. 是空格,则输出

#include <iostream>
using namespace std;
#include<cstring>

char letter[47] = {'`','1','2','3','4','5','6','7','8','9','0','-','=',
					'Q','W','E','R','T','Y','U','I','O','P','[',']','\\',
					'A','S','D','F','G','H','J','K','L',';','\'',
					'Z','X','C','V','B','N','M', ',' , '.' , '/'};

void findletter(char ch){
	int i;
	for (i = 0; ch != letter[i] || i < strlen(letter); i++){
		if (ch == letter[i]){
			cout <<letter[i-1];
			break;
		}
	}
}
int main(){
	string str;
	while (getline(cin,str)){
		int i = 0;
		while(str[i] !='\0'){
			if (str[i] !=' '){
				findletter(str[i]);
			}
			else cout <<str[i];//输出空格
			i++;
		}
	}
}

全部评论

相关推荐

10-11 17:45
门头沟学院 Java
走吗:别怕 我以前也是这么认为 虽然一面就挂 但是颇有收获!
点赞 评论 收藏
分享
沉淀一会:**圣经 1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务