map-hdu 4287-Intelligent IME-想法题

本文介绍了一种算法,该算法将老式手机按键输入与字符串进行匹配,并统计匹配的数量。通过将每个字母映射到相应的数字键上,实现字符串到数字的转换,进而查找并计数与输入数字串相匹配的字符串。

题意:对应老式手机上的9格按键 每个按键对应了几个字母,现在告诉你输入几个数字和几个字符串让你求与字符串匹配的数字有多少个

思路 :每读入一个字符串把他对应的数字求出,以 a+b*10+c*100表示 这样对应的每个按特定组合按下的键 得到的字符窜都只有一个数字且唯一,然后看对应的数字有没有对应的字符串以及有多少个(ps:求关注)

#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int num[2000000];
int a[10000];
char str[20];
int cc(char str[])
{
    int len=strlen(str);
    int ans=0;
    for(int i=0;i<len;i++){
        ans*=10;
        if(str[i]>='a' && str[i]<='c')
            ans+=2;
        else if(str[i]>='d'&& str[i]<='f')
            ans+=3;
        else if(str[i]>='g'&&str[i]<='i')
            ans+=4;
        else if(str[i]>='j' && str[i]<='l')
            ans+=5;
        else if(str[i]>='m'&&str[i]<='o')
            ans+=6;
        else if(str[i]>='p'&&str[i]<='s')
            ans+=7;
        else if(str[i]>='t'&&str[i]<='v')
            ans+=8;
        else ans+=;
    }
    return ans;
}
int main()
{
    int T;
    int n,m,x;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d",&n,&m);
        memset(num,0,sizeof(num));
        for(int i=0;i<n;i++){
            scanf("%d",&a[i]);
        }
        for(int i=0;i<m;i++){
            scanf("%s",&str);
            x=cc(str);
            num[x]++;
        }
        for(int i=0;i<n;i++)
          printf("%d\n",num[a[i]]);
    }
    return 0;
}


基于51单片机,实现对直流电机的调速、测速以及正反转控制。项目包含完整的仿真文件、源程序、原理图和PCB设计文件,适合学习和实践51单片机在电机控制方面的应用。 功能特点 调速控制:通过按键调整PWM占空比,实现电机的速度调节。 测速功能:采用霍尔传感器非接触式测速,实时显示电机转速。 正反转控制:通过按键切换电机的正转和反转状态。 LCD显示:使用LCD1602液晶显示屏,显示当前的转速和PWM占空比。 硬件组成 主控制器:STC89C51/52单片机(与AT89S51/52、AT89C51/52通用)。 测速传感器:霍尔传感器,用于非接触式测速。 显示模块:LCD1602液晶显示屏,显示转速和占空比。 电机驱动:采用双H桥电路,控制电机的正反转和调速。 软件设计 编程语言:C语言。 开发环境:Keil uVision。 仿真工具:Proteus。 使用说明 液晶屏显示: 第一行显示电机转速(单位:转/分)。 第二行显示PWM占空比(0~100%)。 按键功能: 1键:加速键,短按占空比加1,长按连续加。 2键:减速键,短按占空比减1,长按连续减。 3键:反转切换键,按下后电机反转。 4键:正转切换键,按下后电机正转。 5键:开始暂停键,按一下开始,再按一下暂停。 注意事项 磁铁和霍尔元件的距离应保持在2mm左右,过近可能会在电机转动时碰到霍尔元件,过远则可能导致霍尔元件无法检测到磁铁。 资源文件 仿真文件:Proteus仿真文件,用于模拟电机控制系统的运行。 源程序:Keil uVision项目文件,包含完整的C语言源代码。 原理图:电路设计原理图,详细展示了各模块的连接方式。 PCB设计:PCB布局文件,可用于实际电路板的制作。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值