题解 | #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++;
		}
	}
}

全部评论

相关推荐

头像
昨天 15:46
已编辑
中南大学 后端
字节国际 电商后端 24k-35k
点赞 评论 收藏
分享
11-08 13:58
门头沟学院 Java
程序员小白条:竟然是蓝桥杯人才doge,还要花钱申领的offer,这么好的公司哪里去找
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务