1033 旧键盘打字

Posted CSU迦叶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1033 旧键盘打字相关的知识,希望对你有一定的参考价值。

1. 非常奇怪,明明都说了用下划线替代空格,但是用scanf读入的时候就会有1个测试点没通过,换成cin.getline就通过了

2.3种情况下对应的哈希表赋值为true。1是上来就赋值,2是对于大写字母把对应小写字母也赋值,这里注意直接在字符上+32,3是上档键坏了,下标从65~90都要赋值。

AC代码如下

#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#include<bits/stdc++.h>
using namespace std;

const int maxn = 100010;
const double eps = 1e-3;


int main(){
	// 7+IE.
	// 7_This_is_a_test.
	// _hs_s_a_tst
	
	char brokenStr[maxn];
	char outputStr[maxn];
//	scanf("%s %s",brokenStr,outputStr);
	cin.getline(brokenStr,maxn);
	cin.getline(outputStr,maxn); 
	
	bool brokenTable[128] = {false};
	
	int brokenLen = strlen(brokenStr);
	for(int i=0;i<brokenLen;i++){
		char nowCh = brokenStr[i];
		brokenTable[nowCh] = true;
		if(nowCh>='A' && nowCh<='Z')//大写字母的对应小写字母也无法输出 
			brokenTable[nowCh+32] = true;
		if(nowCh == '+'){//上档键坏了,所有大写字母都无法输出 
			for(int j=65;j<91;j++)
				brokenTable[j] = true;
		}
			
	} 
	
	bool isEmpty = true;
	
	int outputLen = strlen(outputStr);
	
	for(int i=0;i<outputLen;i++){
		char nowCh = outputStr[i];
		if(!brokenTable[nowCh]){
			printf("%c",nowCh);
			isEmpty = false;
		} 
	}
	
	if(isEmpty)printf("\\n");
	
	

	
	return 0;
}

以上是关于1033 旧键盘打字的主要内容,如果未能解决你的问题,请参考以下文章

1033 旧键盘打字 (20 分)

python 1033 旧键盘打字 (20 分)

1033. 旧键盘打字(20)

1033. 旧键盘打字(20)

1033 旧键盘打字 (20分)

1033 旧键盘打字(20 分)