今天进行了华为od机试,只做出来第一题,第二题感觉是对的却又不对,只过了22%,把时间全耗在第二题上了,第三题一点都没看,不过事后感觉…第三题比第二题简单的多啊,可惜了,唉。 只能说技不如人。

1.最小字符串

题目描述:
给定一个字符串s,最多只能进行一次变换,返回变换后能得到的最小字符串(按照字典序进行比较)。
变换规则:交换字符串中任意两个不同位置的字符。
输入描述:
一串小写字母组成的字符串s。
输出描述:
按照要求进行变换得到的最小字符串。
备注:
s是都是小写字符组成
1<=s.length<=1000
示例
输入:abcdef
输出:abcdef
说明:abcdef已经是最小字符串,不需要交换

输入:bcdefa
输出:acdefb
说明:a和b进行位置交换,可以得到最小字符串

只能想到暴力法,当时这题过了

const input = readline()
let minStr = ""const check = (str1, str2)=>{for(let i=0; i<str1.length; i++){if(str1[i].charCodeAt()>str2[i].charCodeAt()){return true}if(str1[i].charCodeAt()<str2[i].charCodeAt()){return false}}return false
}for(let i=0;i<input.length;i++){for(let j=i+1;j<input.length;j++){if(input[i].charCodeAt() < input[j].charCodeAt()){let temp = input.split('')temp[i] = input[j]temp[j] = input[i]if(check(input,temp)){minStr = temp}}}
} if(minStr === ""){console.log(input)
}
else{console.log(minStr)
}

2.水仙花拆分字符串

题目:
一.输入一组字符串, 求字符串分组后,每组的和为水仙花数
(注:水仙花数是一个三位数 其个位、十位、百位的立次方 的和等于自身 如 371 = 3^3 + 7^3 + 1^1 )
(1) 如果无法找到该分组 ,返回0 ;
(2) 找到该分组,切分组不唯一 ,返回 -1;
(3)分组唯一 ,则返回分组的组数 ;

例如:
输入: abc
输出:0
输入:f3@d5a8
输出:-1
输入:AXdddF
输出:2

这题我当时感觉自己好像是对的,但怎么都是20%不知道为啥,就卡在这一题了。于是之后百度到了一个非常巧妙的深搜解法,它用深度代表子串的个数, 真的很有道理,经测试可以。

const input = readline()const calculate = (str) => {let sum = 0str.forEach((item) => {sum += item.charCodeAt()})return sum
}const check = (str) => {let num = calculate(str)const num2 = numlet sum = 0while(num !== 0){sum += Math.pow(num%10,3)num = Math.trunc(num/10)}return sum === num2
}const results = []const dfs = (start, depth) => {if(start === input.length){results.push(depth)return}for(let end = start+1;end<=input.length;end++){let substr = input.substring(start, end).split('')if(check(substr)){dfs(end, depth+1)}}
}dfs(0,0)
if(results.length === 0){console.log(0)
}
else if(results.length === 1){console.log(results[0])
}
else if(results.length > 1){console.log(-1)
}

3.找到它

找到它是个小游戏,你需要在一个矩阵中找到给定的单词。假设给定单词HELLOWORLD,在矩阵中只要能找到H->E->L->L->O->W->O->R->L->D连成的单词,就算通过。

注意区分英文字母大小写,并且你只能上下左右行走,不能走回头路。

输入描述:
输入第一行包含两个整数n、m(0<n,m<21)分别表示n行m列的矩阵,第二行是长度不超过100的单词W(在整个矩阵中给定单词W只会出现一次),从第3行到第n+2行是只包含大小写英文字母的长度为m的字符串矩阵。

输出描述:
如果能在矩阵中连成给定的单词,则输出给定单词首字母在矩阵中的位置(第几行 第几列),否则输出“NO”。

示例:

输入:
5 5
HELLOWORLD
CPUCY
EKLQH
CHELL
LROWO
DGRBC
输出:
3 2
1

输入:
5 5
HELLOWORLD
CPUCY
EKLQH
CHELL
LROWO
AGRBC
输出:
NO

这题感觉不难,跟走迷宫类似,但是当时时间不够了,这题一点没看。之后百度了一下没能找到完整的题目,哪位大哥要是知道完整题目请告诉我一下,非常感谢!

多谢 @Lynn Lu 大哥提供题目! 等以后有时间把答案补上

2022.8.1 华为od机试相关推荐

  1. 2022.06.26 华为od机试真题

    华为od机试真题 1.最长连续子串 2.正方形数量 3.二叉树层次遍历(不会做) 1.最长连续子串 有N个正整数组成的一个序列给定一个整数sum求长度最长的的连续子序列使他们的和等于sum返回次子序列 ...

  2. 华为OD机试(Java)真题目录汇总(20222023)

    1.其它语言华为OD机试真题目录 华为OD机试(Python)真题目录汇总 华为OD机试(C++)真题目录汇总 华为OD机试(JavaScript)真题目录汇总 2.Java语言实现华为OD机试目录 ...

  3. 华为OD机试(Python)真题目录汇总(20222023)

    1.其它语言华为OD机试真题目录 华为OD机试(JAVA)真题目录汇总 华为OD机试(C++)真题目录汇总 华为OD机试(JavaScript)真题目录汇总 2.Python语言实现华为OD机试目录 ...

  4. 【华为OD机试真题 python】连续出牌数量【2022 Q4 | 200分】

    前言 <华为OD笔试真题 python> 专栏含华为OD机试真题.华为面试题.牛客网华为专栏真题. 如果您正在准备华为的面试,或者华为od的机会,有任何想了解的可以私信我进行交流.我会尽可 ...

  5. 【华为OD机试真题 python】补种未成活胡杨 【2022 Q4 | 100分】

    前言 <华为OD笔试真题 python> 专栏含华为OD机试真题.华为面试题.牛客网华为专栏真题. 如果您正在准备华为的面试,或者华为od的机会,有任何想了解的可以私信我进行交流.我会尽可 ...

  6. 【华为OD机试真题 python】羊、狼、农夫过河【2022 Q4 | 100分】

    前言 <华为OD笔试真题 python> 专栏含华为OD机试真题.华为面试题.牛客网华为专栏真题. 如果您正在准备华为的面试,或者华为od的机会,有任何想了解的可以私信我进行交流.我会尽可 ...

  7. 华为OD机试真题2022(JAVA)

    华为机试题库已换 →→→ 华为OD机试2023B卷(JAVA&JS) 以下题目为旧版题库,供大家课外消遣 基础题: 序号 题目 分值 1 查找众数及中位数 100 2 出错的或电路 100 3 ...

  8. 【华为OD机试真题 python】星际篮球争霸赛【2022 Q4 | 100分】

    前言 <华为OD笔试真题 python> 本专栏包含华为OD机试真题,会实时更新收纳网友反馈,为大家更新最新的华为德科OD机试试题,为大家提供学习和练手的题库,订阅本专栏后可私信进交流群哦 ...

  9. 【华为OD机试真题 python】用户调度问题 【2022 Q4 | 100分】

    前言 <华为OD笔试真题 python> 专栏含华为OD机试真题.华为面试题.牛客网华为专栏真题. 如果您正在准备华为的面试,或者华为od的机会,有任何想了解的可以私信我进行交流.我会尽可 ...

最新文章

  1. oracle的导出参数statistic,使用expdp导出时评估所需存储容量大小
  2. 求大素数 - 埃拉托斯特尼筛法
  3. c语言从1加到任意数的编程,c语言:从键盘任意输入一个整数n,编程计算并输出1-n之间的所有素数之和...
  4. Java 1.1.4 检测字符串是否相等
  5. [bzoj1044][HAOI2008]木棍分割
  6. 【三维路径规划】基于matlab Nsga-2算法求解无人机三维路径规划【含Matlab源码 1455期】
  7. scratch编程——一个列表实现经典扫雷游戏
  8. 嗯,手搓一个TinyPng压缩图片的WebpackPlugin也SoEasy啦
  9. 复制错误:安装程序无法复制文件 Atapi.sys
  10. 趣味花体模糊字体玩法介绍与实践
  11. ASO优化:ios关键词覆盖和增量技巧
  12. python可能实现办公自动化吗,让工作化繁为简:用Python实现办公自动化
  13. matlab的特殊字符(上下标和希腊字母等)
  14. flutter 自定义TabBar +自定义Indicator
  15. caffe版本-车型检测-A Large-Scale Car Dataset for Fine-Grained Categorization and Verification
  16. angularjs2大漠穷秋视频笔记整理
  17. 最新文本转语音的接口(免费),百度语音作废
  18. idea设置打开多个窗口
  19. 自动驾驶汽车硬件与软件技术介绍
  20. 《锦绣中华》中老年公益文旅游-走进佛山敬老院

热门文章

  1. js时间戳转化为日期
  2. Solver lbfgs supports only 'l2' or 'none' penalties, got l1 penalty.解决办法
  3. Android Study Jam 在线答疑第三期:Jetpack Compose 案例实战
  4. 松下伺服电机pwm控制连线_TMC4671基于硬件FOC伺服电机控制芯片适应BLDC/PMSM、两相步进、直流有刷...
  5. 电大计算机应用基础试卷号2007,电大2007《计算机应用基础(专)》在线形考作业3 模块4PowerPoint2010电子演示文稿系统答案(课程号:00815)...
  6. 汉字风格迁移篇---SKFont:具有条件深度对抗网络的骨架驱动韩文字体生成器
  7. MIUI 强制跳过 关闭 打开 小米手机 USB安装 USB安全 USB安全设置 应用确认
  8. matlab风力机叶片仿真教程,基于MATLAB的小型风力机叶片设计
  9. matlab批量导入文件
  10. 如何用uc自媒体做淘宝客?UC自媒体号哪里有?