华为机考HJ17坐标移动
什么是tama的惊喜。
什么是tama的绑架。
我承认了我是算力绑架犯,只会暴力破解,不会精妙算法。
先将数据分组,放在二维的vector中。
分别处理每一行,按特征剔除不符合的数据。
用到了数据覆盖思想。此法也可用于提取不重复数据(去重)。
总之是sb方法暴力破解。
啊,我要欣赏一下其他大佬的方法。
我看到有人用memset,那是什么?我一会去学习一下。
#include<stdio.h>
#include<string.h>//AS赋负值,DW赋正值。/*触发正值或负值,出现两个case*/
//检测ASDW后的数字,与上一个结果做运算,第一个从零开始
//以分号做标志
//不能出现除数字和ASDW以外的字符char input[10000],n[1000],m[1000],asb[1000][1000]={0};
int len,i=0,j=0,k=0,flag=0,p=0,x = 0,y = 0,dir,dist=0,distance[1000];
char A,S,D,W;
int rank[1000]={-1};
int dis_fen,dis_fen_2,dis_fen_3,dis_fen_4;
char char_list[10]={'0','1','2','3','4','5','6','7','8','9'};
int digital_list[10]={0,1,2,3,4,5,6,7,8,9},d[100];int main()
{while(scanf("%s\n",input) != EOF){len = strlen(input);//获取字符串长度for(i = 0; i <len ;i++)//获取分号位置{if(input[i] ==';'){rank[j+1]=i;j++;}} int point=j;//二维数组,f分号分隔放在不同行//3<坐标相减<4的放入 套:第一个是字母的放入 //if坐标=3 看第二位是否是数字//else if坐标=4 第二第三位是否是数字// for(i=0;i<point;i++)//分组{for(k = flag,j=0;((input[k] != ';')&&(input[k] != '\n'));k++){asb[i][j]=input[k];j++;}j=0;k++;flag=k;}for(i= 0;i<point;i++)//计算每行的长度{distance[i] = rank[i+1]-rank[i]; }for(i=0;i<point;i++)//长度不符合的剔除{if((distance[i]<3)||(distance[i]>4)){for(j=i;j<point;j++){for(k=0;k<distance[j+1];k++){asb[j][k]=asb[j+1][k]; } distance[j]=distance[j+1];}i--; point--;}} for(i=0;i<point;i++)//首位不符合的剔除{if((asb[i][0] !='A')&&(asb[i][0] !='S')&&(asb[i][0] !='D')&&(asb[i][0] !='W')){for(j=i;j<point;j++){for(k=0;k<distance[j+1];k++){asb[j][k]=asb[j+1][k]; } distance[j]=distance[j+1];}i--; point--;}} for(i=0;i<point;i++) {if((asb[i][1]<'0')||(asb[i][1]>'9'))//剔除第二位不是数字的{for(j=i;j<point;j++){for(k=0;k<distance[j+1];k++){asb[j][k]=asb[j+1][k]; } distance[j]=distance[j+1];}i--; point--;} else{ if(distance[i]==4){if((asb[i][2]<'0')||(asb[i][2]>'9'))//剔除第三位不是数字的{for(j=i;j<point;j++){for(k=0;k<distance[j+1];k++){asb[j][k]=asb[j+1][k]; } distance[j]=distance[j+1];}i--; point--;} }}}//仿照单片机进行表查找for(i=0;i<point;i++){if(distance[i]==3)//个位数距离{for(j=0;j<10;j++){if(asb[i][1]==char_list[j]){d[i]=digital_list[j];}}}else//十位数距离{for(j=0;j<10;j++){if(asb[i][1]==char_list[j]){d[i]=digital_list[j]*10;}}for(j=0;j<10;j++){if(asb[i][2]==char_list[j]){d[i]=d[i]+digital_list[j];}}}}for(i=0;i<point;i++){switch(asb[i][0]){ case 'A': { x =x-d[i];break;}case 'S': {y =y-d[i];break;}case 'D': {x = x+d[i];break; }case 'W':{y = y+d[i];break;}}}printf("%d,%d",x,y); }}
华为机考HJ17坐标移动相关推荐
- 【刷题】华为笔试面试机考 [HJ17] - 坐标移动
题目地址 点击跳转 题目描述 开发一个坐标计算工具, A表示向左移动,D表示向右移动,W表示向上移动,S表示向下移动.从(0,0)点开始移动,从输入字符串里面读取一些坐标,并将最终输入结果输出到输出文 ...
- 「解析」牛客网-华为机考企业真题 1-20
又是一年春招时,有幸收到华为自动驾驶算法岗,之前刷题不多,在此汇总下牛客网的真题,主要采用Python编写,个人觉得语言只是实现工具而已,并不是很关键,Python简洁易懂,更加适合算法工程师快速验证 ...
- 2023华为机考刷题指南:八周机考速通车
2023.1.13更新: 拿到了华子offer,看到这个贴子一直有人收藏,最近有空完善一下,主要是把深搜的几道题的题号添上. 华子的机考不算简单,挺难的,还是得好好准备一下,而且技术面必撕题,所以刷题 ...
- 「解析」牛客网-华为机考企业真题 41-60
又是一年春招时,有幸收到华为自动驾驶算法岗,之前刷题不多,在此汇总下牛客网的真题,主要采用Python编写,个人觉得语言只是实现工具而已,并不是很关键,Python简洁易懂,更加适合算法工程师快速验证 ...
- 华为机考HJ13句子逆序C语言弱智解法
华为机考HJ13句子逆序C语言弱智解法 句子逆序C语言低端解法,易于理解. 1.收数据老生常谈. 2.将句子全部逆序. 3.将单词正序. (这里有一个bug,最后一个词(原句子第一个词)总是收不到,所 ...
- 华为机考HJ7取近似值
华为机考HJ7取近似值 只有小数点后一位,所以扩大十倍,让小数点后的数都为0. 然后强制转换成整型,不会影响精度. 强制转换原数的数据类型,无论原数据是什么,都只保留整数部分. 将扩大后的数对10求余 ...
- 华为机考HJ2计算字符个数
华为机考HJ2计算字符个数 gets();每次收一行字符. getchar();每次收一个字符. 两个都存储后用第二个在第一个串中检索. 大小写的问题用大小写的ASCII码差值32解决. 暴力破解,没 ...
- 华为机考HJ1字符串最后一个单词的长度
华为机考HJ1字符串最后一个单词的长度C语言解法 统计的是字符串最后一个单词的长度. 而不是单词的内容,所以单词的内容并不重要. 只需要用空格来做标志位即可. getchar():每次只收一个字符. ...
- 华为机考HJ8合并表记录
华为机考HJ8合并表记录 其实就是简单的排序+去重,只不过要多一组数据 没有大神们好用,白给. python好像有个map能用,非常简单,不过我不太会. 马上机考,祝我好运. 我机考回来了,就会一个题 ...
最新文章
- python删除指定位置的字符串_python去除区域 python删除字符串中指定位置字符
- 无限想象空间,用Python玩转3D人体姿态估计
- ntu 课程 ERIC(2):Planning your research
- java 单例设计模式 [
- kdj值应用口诀_KDJ买卖绝学!记住这些操作 精准判断quot;顶部和底部quot; 让你远离亏损...
- .NET 深度指南:Colors
- 课时20:内嵌函数和闭包
- mkv210_image.c详解
- TD数量不确定时如何让其宽度平均分布
- CCF CSP201903-1 小中大
- codeigniter中 get_instance()的应用
- IOS拍照控件同时显示拍照与录像
- wine运行软件检测不到u盘_PE吧“U盘助理”——启动U盘制作图文教程-
- AnySDK项目实战教程
- 趣味程序之打印字符图案系列
- 浙江大学公共管理学院与阿里云计算有限公司达成战略合作 | 凌云时刻
- 最新时空观测结果证实爱因斯坦相对论合理性
- 打造成功IT项目经理——光环国际——读感
- IIS HTTP 503错误日志位置
- 演员改行做程序员?一男一女,这两个人你绝对想不到