【PAT】B1029/A1084. Broken Keyboard (20)

本文介绍了一种算法,用于确定键盘上哪些按键已损坏。通过对比预期输入与实际输入的字符串,该算法能够准确地找出损坏的按键。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Author: CHEN, Yue

Organization: 浙江大学

Time Limit: 200 ms

Memory Limit: 64 MB

Code Size Limit: 16 KB

Description:

On a broken keyboard, some of the keys are worn out. So when you type some sentences, the characters corresponding to those keys will not appear on screen.

Now given a string that you are supposed to type, and the string that you actually type out, please list those keys which are for sure worn out.

Input Specification:

Each input file contains one test case. For each case, the 1st line contains the original string, and the 2nd line contains the typed-out string. Each string contains no more than 80 characters which are either English letters [A-Z] (case insensitive), digital numbers [0-9], or “_” (representing the space). It is guaranteed that both strings are non-empty.

Output Specification:

For each test case, print in one line the keys that are worn out, in the order of being detected. The English letters must be capitalized. Each worn out key must be printed once only. It is guaranteed that there is at least one worn out key.

Sample Input:

7_This_is_a_test

_hs_s_a_es

Sample Output:

7TI

Code

//NKW 乙级练习题1019
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
const int maxn = 110;
int main(){
	char input[maxn], output[maxn];
	int hash[128];				//ASCII码长度
	memset(hash, 0, sizeof(hash));
	scanf("%s", input);
	scanf("%s", output);
	for (int i = 0; i < strlen(output); i++){
		if (output[i] >= 'a'&&output[i] <= 'z')
			output[i] -= 32;
		hash[output[i]] = 1;
	}
	for (int i = 0; i < strlen(input); i++){
		if (input[i] >= 'a'&&input[i] <= 'z')
			input[i] -= 32;
		if (!hash[input[i]]){
			printf("%c", input[i]);
			hash[input[i]] = 1;
		}
	}
	printf("\n");
	return 0;
}

Analysis

-旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。

### 使用 `git clone` 命令克隆 TophantTechnology ARL 项目的指南 要成功从 GitHub 克隆 TophantTechnology 的 ARL 项目,可以按照以下方式操作: #### 1. 确认网络环境无代理干扰 如果之前设置过 Git 的全局代理,则可能会影响正常访问远程仓库。可以通过以下命令移除所有可能导致冲突的代理配置[^1][^2]: ```bash git config --global --unset http.proxy git config --global --unset https.proxy git config --global --unset http.https://github.com.proxy git config --global --unset https.https://github.com.proxy ``` #### 2. 配置身份验证(针对启用两因素认证的情况) 当启用了 GitHub 的两因素认证 (2FA),仅通过用户名和密码无法完成身份验证。此时需使用个人访问令牌 (Personal Access Token, PAT)[^3]。 ##### 如何生成 Personal Access Token? - 登录到 GitHub 账户。 - 进入 **Settings -> Developer settings -> Personal access tokens**。 - 创建一个新的 token 并赋予必要的权限范围(如 `repo` 权限用于读取私有库)。 - 记下生成的 token,因为一旦关闭页面就无法再次查看。 注意:Token 应妥善保管并视为敏感数据处理。 #### 3. 执行克隆操作 假设目标仓库地址为 `https://github.com/TophantTechnology/ARL.git` ,执行如下命令实现克隆动作: ```bash git clone https://github.com/TophantTechnology/ARL.git ``` 系统会提示输入用户名与密码,在此场景下的“密码”即为你刚才创建好的 personal access token。 --- ### 注意事项 - 如果遇到 SSL 错误或者连接超时等问题,请确认本地防火墙规则或尝试更换 DNS 设置。 - 对于频繁使用的仓库推荐考虑 SSH Key 方法替代 HTTPS URL 形式来简化流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值