站外题求助!
  • 板块灌水区
  • 楼主封禁用户
  • 当前回复9
  • 已保存回复9
  • 发布时间2024/11/6 19:10
  • 上次更新2024/11/6 21:09:10
查看原帖
站外题求助!
1338182
封禁用户楼主2024/11/6 19:10

为了通讯方便,熊大熊二兄弟开始学习使用手机发信息,它们的手机使用的是T9输入法!手机会显示右图的界面,只有9个键。

为了输入单词,有时需要快速连续按一个键。具体的讲:

 kkk

1)如果输入的是键上第1个字母,就按1次键;

2)如果输入的是键上第2个字母,就按2次键;

3)如果输入的是键上第3个字母,就按3次键;

比如,要输入单词"giht",就要如下按键:

g--4;i--444;h--44;t--8;

熊大觉得可以改进这个输入法,搞一个联想功能。单词的每个字母就按一次相应的键,软件根据手机里的字典,联想匹配出选中的单词。

比如:输入单词"hello",就按"43556"五次键。

现在熊大要进行一些测试,每次给出n个单词的字典,每个单词都是由小写字母构成的。然后请熊二根据自己心中的单词连续按键,看看软件会联想匹配出多少个单词?

【输入格式】

第一行,一个正整数N,范围在[1..1000],表示字典里单词个数;

下面n行,每行一个单词;

最后一行是一个长度不超过1000的字符串s,每个字符都是数字2-9,代表按键序列。

【输出格式】

一个整数,表示根据s字典中可以联想匹配多少单词。

输入/输出例子1 输入:

3

tomo

mono

dak

6666

输出:

1


#include<bits/stdc++.h>
#define int long long
using namespace std;
int n, ans, t, a;
string s[1005];
signed main(){
	cin >> n;
	for(int i = 1; i <= n; i++){
		cin >> s[i];
	}
	cin >> a;
	for(int i = 1; i <= n; i++){
		t = 0;
		for(int j = 0; j < s[i].size(); j++){
			if(s[i][j] > 'a' && s[i][j] <= 'c')
				t = t*10 + 2;
			if(s[i][j] > 'd' && s[i][j] <= 'f')
				t = t*10 + 3;
			if(s[i][j] > 'g' && s[i][j] <= 'i')
				t = t*10 + 4;
			if(s[i][j] > 'j' && s[i][j] <= 'l')
				t = t*10 + 5;
			if(s[i][j] > 'm' && s[i][j] <= 'o')
				t = t*10 + 6;
			if(s[i][j] > 'p' && s[i][j] <= 's')
				t = t*10 + 7;
			if(s[i][j] > 't' && s[i][j] <= 'v')
				t = t*10 + 8;
			if(s[i][j] > 'w' && s[i][j] <= 'z')
				t = t*10 + 9;
		}
		if (t == a) ans++;
	}
	cout << ans;
	return 0;
}

求帮助!

2024/11/6 19:10
加载中...