华为od的一些算法题

2023-11-13

【报数游戏】100个人围成一圈,每个人有一个编码,编号从1开始到100。他们从1开始依次报数,报到为M的人自动退出圈圈,然后下一个人接着从1开始报数,直到剩余的人数小于M。请问最后剩余的人在原先的编号为多少?

输入描述:输入一个整数参数M
输出描述:如果输入参数M小于等于1或者大于等于100,输出“ERROR!”;否则按照原先的编号从小到大的顺序,以英文逗号分割输出编号字符串
示例1:
输入
输出
3
58,91

function baoshu(num, numArr, item) {
    let newArr = [];
    for (let index = 0; index < numArr.length; index++) {
        if (item !== num) {
            newArr.push(numArr[index])
            item++;
        } else {
            item = 1;
        }
    }
    if (newArr.length < num) {
        console.log(newArr);
    } else {
        baoshu(num, newArr, item)
    }
}
function make(num) {
    let arr = []
    for (let i = 0; i < num; i++) {
        arr.push(i + 1)
    }
    return arr;
}
baoshu(4, make(100), 1)

编写函数,计算输入中单词的出现次数。

Ⅰ按次数降序输出,
Ⅱ相同次数的按字母顺序升序排序。
New to Python or choosing between Python 2 and Python 3? Read Python 2 or Python 3
正确结果为:
Python : 5
2 : 2
or : 2
3 : 1
3? : 1
New : 1
Read : 1
and : 1
between : 1
choosing : 1
to : 1

function find(str) {
    let arr = [];
    str.split(' ').forEach(item => {
        let bool = false;
        arr.forEach((item2, index) => {
            if (item2.key === item) {
                bool = true;
                arr[index].value += 1;
            }
        })
        if (!bool) {
            arr.push({
                key: item,
                value: 1
            })
        }
    });
    arr.sort((a,b)=>{
        if(a.value == b.value){
            if(a.key>b.key){
                return 1;
            }else{
                return -1;
            }
        }else{
            return b.value-a.value;
        }
    })
    return arr;
}
let str = 'New to Python or choosing between Python 2 and Python 3? Read Python 2 or Python 3'
console.log(find(str));

编写函数,给定var a = (5).plus(3).minus(6); 为 2 相当于(5+3-6=2)

//在原型上添加方法
Number.prototype.plus =  function(num){  return this + num;  }
Number.prototype.minus = function(num){  return this - num;  }
var a = (5).plus(3).minus(6); 

给你一个整数数组 nums 和一个整数 k ,判断数组中是否存在两个 不同的索引 i 和 j ,满足 nums[i] == nums[j] 且 abs(i - j) <= k 。如果存在,返回 true ;否则,返回 false 。

输入:nums = [1,2,3,1], k = 3
输出:true
示例 2:

输入:nums = [1,0,1,1], k = 1
输出:true
示例 3:

输入:nums = [1,2,3,1,2,3], k = 2
输出:false
//第一种方法
function find(arr, k) {
    let set = new Set();
    let len = arr.length;
    for (let i = 0; i < len; i++) {
        if(i>k){
            set.delete(arr[i-k-1])
        }
        if(set.has(arr[i])){
            return true;
        }
        set.add(arr[i])
    }
    return false;
}
//第二种方法
function find2(nums, k) {
    const map = new Map();
    const length = nums.length;
    for (let i = 0; i < length; i++) {
        const num = nums[i];
        if (map.has(num) && i - map.get(num) <= k) {
            return true;
        }
        map.set(num, i);
    }
    return false;
};
console.log(find([1,0,1,1],1));
console.log(find2([1,0,1,1],2));

反转每对括号间的子串

function reverse(s) {
    let stk = [];
    let str = '';
    for (const ch of s) {
        if (ch == '(') {
            stk.push(str);
            str = ''
        } else if (ch == ')') {
            str = str.split('').reverse().join('');
            str = stk[stk.length - 1] + str;
            stk.pop();
        } else {
            str +=ch;
        }
    }
    return str;
}

console.log(reverse('(ab(cd)ef)'));

编写一个函数来查找字符串数组中的最长公共前缀。

function find(strs) {
    if (strs.length === 0) {
        return '';
    }
    let ans = strs[0];
    for (let i =1;i<strs.length;i++) {
        let j = 0;
        for (; j < ans.length && j < strs[i].length; j++) {
            if (ans[j] != strs[i][j]) {
                break;
            }
        }
        ans = ans.substr(0, j);
        if (ans === '') {
            return ans;
        }
    }
    return ans;
}
console.log(find(['flower','flowsd','flossf']));

给你一个字符串 s ,请你返回满足以下条件的最长子字符串的长度:每个元音字母,即 ‘a’,‘e’,‘i’,‘o’,‘u’ ,在子字符串中都恰好出现了偶数次。

var findTheLongestSubstring = (str) => {
    let res = 0 
    let state = 0 // 前缀区间的state状态
    let vowel = { a: 1, e: 2, i: 4, o: 8, u: 16 } // 对照表
    let map = { 0: -1 } // map存放各个前缀区间的state
    for (let i = 0; i < str.length; i++) { // 遍历str串
        let char = str[i] // 获取当前遍历的字符
        if (vowel[char] !== undefined) { // 当前遍历的字符是元音
            state ^= vowel[char] // 求出当前前缀区间的state
            if (map[state] === undefined) { // 当前state没存过
                map[state] = i // 存入该state,和对应的位置
            }
        }
        let distance = i - map[state] //求距离,即满足条件的子串长度
        res = Math.max(res, distance) // 试图刷新最长记录
    }
    return res
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

华为od的一些算法题 的相关文章

  • 使用 JavaScript 以编程方式编辑 Google 文档

    我想做的是运行一些 JavaScript 代码 将文本输入到 Google 文档中 到目前为止 我所做的是在我的个人网页上创建一个嵌入 Google 文档的 iframe 元素 目前我想做的是使用 Google 源代码中的函数来输入文本 当
  • toastr (jquery) 只能显示一次

    你能帮我限制烤面包机的外观吗 给定的情况是 当我登录系统时 欢迎 toastr 只会在主屏幕上出现一次 并且在整个会话中不会再次出现 直到我注销为止 这是我的 toastr 代码 setTimeout function toastr opt
  • 如何避免多系列折线图d3.js的工具提示重叠

    我已经在多系列折线图上创建了工具提示 如下所示在这里回答 https stackoverflow com questions 34886070 d3 js multiseries line chart with mouseover tool
  • Safari 不触发表单提交

    对于一个项目 我有两个选择表单字段 它们通过 jquery 触发器 提交 发送 这在 Firefox 和 Chrome 中运行良好 但在 Safari 中没有任何反应 这是 HTML 代码
  • Socket.io 如何判断某人何时离开

    我正在使用 socket io 创建一个实时游戏 目前 当有人离开时 什么也不会发生 我想以某种方式通知服务器说谁离开了 有没有办法在用户离开时发出正确的信息 我可以让服务器每 1000 毫秒对每个人执行一次 ping 操作 或者通过其他方
  • 计算div中有多少个元素

    我有一个div 里面有span 有没有一种方法可以计算 div 中有多少个元素 然后将其作为值给出 例如 一个 div 中有 5 个跨度 那么它会对其进行计数并发出警报 5 请使用 JavaScript 谢谢 如果你想要后代的数量 你可以使
  • Backbone Collection 和 Marionette CompositeView 中未定义的模型原型

    尝试从值列表填充集合时 我收到有关集合的错误model s prototype未定义 看着这个问题是关于类似问题的 https stackoverflow com q 16126195 1663942 我已经检查过模型确实已创建before
  • 在 JSON 数组中按属性查找对象

    我在获取 JSON 数据中的字符串时遇到问题 格式如下 name Alice age 20 id David last 25 id John last 30 有时它会一起改变位置 John从第三名到第二名 name Alice age 20
  • 如何使用 RSpec 测试 javascript 重定向?

    我正在使用 xhr post 与控制器交互 并且我期待重定向 在 js erb 中 我有 window location href address 手动测试 浏览器会正确重定向 我如何使用 RSpec 测试它 response should
  • 将 MVC 操作结果发送到打印机

    我有一个带有操作的控制器 SomeController ActionToBePrinted ActionToBePrinted 返回一个 html 视图 当按下按钮时 从普通的 mvc razor 视图调用此操作 当按下按钮时 我将如何将视
  • 任何 JavaScript 代码都是有效的 TypeScript 代码吗?

    目前我已经开始学习TypeScript 从我研究过的文档来看TypeScript 我看到一些纯的样品JavaScript代码可以编译为TypeScript code 我的问题是 TypeScript 语言的设计方式是否使任何 JavaScr
  • Immutable.js 推入嵌套对象中的数组

    假设有一个对象 const object foo bar 1 2 3 我需要推动4 to object foo bar array 现在我正在这样做 const initialState Immutable fromJS object co
  • 添加元数据到快速路线

    有什么方法可以将元数据添加到 Express 的路线中吗 例如 app get some route function req res some meta data 我正在寻找一种针对我的节点应用程序的 AOP 方法 因此我想通过身份验证和
  • Boolean("false") 返回 true..还有其他选择吗?

    我正在使用 jquery 将 true 和 false 字符串写入 data html 属性 但是 当我将 false 写入其中一个属性 然后检查它是否为 false 时 它 会返回 true 我还在网上读到它应该这样做 这真的毫无意义 有
  • js中将div旋转到一定高度

    How to rotate a div to certain height suppose 10px I can rotate a div otherwise around 360 degrees I need the angle by w
  • 检测浏览器是否支持 contentEditable?

    There s 这个问题 https stackoverflow com questions 3497942 browser detect contenteditable features 但发布的解决方案是浏览器嗅探 我试图避免这种情况
  • 插入四个空格而不是制表符

    我试图在按下 Tab 键时插入四个空格 我正在使用以下代码 请参阅spaces t 但是当我将其切换到spaces 当我按 Tab 时只插入一个空格 我还尝试了 function textarea keydown function e va
  • 以特定顺序运行具有效果的 jQuery 函数

    我在 javascript 函数中有一些 jQuery 可以更改页面上的文本并以特定的时间间隔淡入和淡出 我希望这些函数在每个函数完成其效果后按顺序运行 dialogueExchange1 dialogueExchange2 dialogu
  • 如何找出javascript中加载了哪些javascript?

    继另一个问题的评论之后 我问自己是否有办法获取页面上加载的所有 js 代码的列表 就像 Firebug 或 chrome Inspector 所做的那样 有没有一种纯javascript的方法 一种方法是抓取脚本标签 但这样你可能会错过动态
  • 来自 ajax 的 Bootstrap 表 json

    我有 ajax 和 bootstrap 表的问题 我有一个 ajax JSON 我用这个方法调用 document ready function ajax url php process php method fetchdata dataT

随机推荐

  • 转录因子分析预测 cistrome db

    Toolkit for CistromeDBhttp dbtoolkit cistrome org 基因表达调控系列问题汇总 持续更新 知乎 zhihu com
  • CCF C³-23@阿里妈妈:数智商业技术丨开始报名

    CCF C 活动第二十三期主题是 数智商业技术 将于2023年9月14日周四 18 00 21 30 在北京市朝阳区阿里中心望京A座阿里妈妈举行 报名从速 2023年 可以说是属于生成式AI大模型的一年 从去年年底持续到现在的 以生成式AI
  • CVE-2023-23752:Joomla未授权访问漏洞复现

    CVE 2023 23752 Joomla未授权访问漏洞复现 前言 本次测试仅供学习使用 如若非法他用 与本文作者无关 需自行负责 一 Openfire简介 Joomla是一个免费的开源内容管理系统 CMS 允许用户构建网站和在线应用程序
  • VUE React Angular

    Typescript ES6 ES5 React 专注于使用 Javascript ES6 Vue 使用 Javascript ES5 或 ES6 Angular 依赖于 TypeScript 模板 JSX 还是 HTML React JS
  • 厉害,被马赛克的图片竟然还可以恢复

    文章首发于微信公众号 GitHub 精选 欢迎大家关注 大家好 我是章鱼猫 其实之前在我用马赛克对图片进行模糊处理的时候 我就思考过这个问题 这些被马赛克的地方能不能被恢复出来 万一能恢复 当时就觉得细思极恐 你说巧不巧还真能恢复 在介绍今
  • DataGrid后台实现选中某一行,并滚动到当前选中项

    定义一个DataGrid
  • Linux文件权限

    Linux文件权限 一 对shell外壳的理解 1 对shell外壳的理解 2 shell外壳的作用 3 shell与bash的关系 二 文件的权限 1 如何理解权限 2 如何查看文件的权限 3 文件都有哪些权限 4 角色的划分 5 权限操
  • 从URL到浏览器显示页面的流程

    一 URL解析 1 地址解析 浏览器会根据你的输入来判断该输入是一条合法的URL 还是需要被搜索的关键词 并且根据你输入的内容进行自动完成 字符编码等操作 2 其他操作 目前大部分浏览器都会强制客户端使用HTTPS协议以保证信息传输的安全性
  • 解决STM32引脚无法输出0V电压问题:深入探讨输出缓冲器(Output Buffer)

    在嵌入式系统开发中 精确控制引脚输出电压是至关重要的 然而 有时会遇到DAC模块无法输出0V 接近 电压的情况 这往往是因为默认开启了Output Buffer 输出缓冲器 导致的 在程序中直接赋值为0 DAC SetChannel1Dat
  • Windows Server 配置(七)VPN服务器的安装

    VPN服务器的安装 VPN服务器是双网卡或多网卡的配置 一块网卡连接内网 另一块连接外网 同时外网或远程的客户端可以通过建立VPN连接访问到内网资源 两块网卡分别设置好地址 外网网卡的地址是否能做的 或者是在路由器上做NAT需要进一步了解
  • 1.1.3 计算机网络的相关性能指标

    1 1 3 计算机网络的相关性能指标 1 速率 即数据率或称数据传输率或比特率 连接在计算机网络上的主机在数字信道上传输数据位数的速率 补充 速率的单位 1 Tb s 10 3 Gb s 10 6 Mb s 10 9 kb s 10 12
  • 基于springboot开发项目架构之ElasticSearch

    官方网址 https www elastic co cn products elasticsearch Github https github com elastic elasticsearch 总结 1 elasticsearch是一个基
  • pandas 数据聚合

    1 apply Series Series apply func convert dtype True args kwds func 要进行数据聚合的函数 自动对Series内的每个数据调用func gt gt gt import pand
  • Web开发学习(9)全局埋点

    size large 埋点的作用是把客户端每次访问服务端的操作记录下来 包括请求连接 请求者ip 请求参数 请求结果等等 以便于在出现异常的情况下排查 在用户量庞大的情况下还可以对这些记录做数据分析 这个功能我还是坚持一直以来的原则 一次封
  • 虚拟服务器怎么建站,虚拟主机建站流程

    虚拟主机 由于性价比高 易于操作 即开即用 管理方便等优点 成为众多站长创 首先 网站搭建流程一般是 这里 购买部分 不详细讲述 我们以 第二步 备案非常重要 千万不要抱侥幸心理 购买好产品后 及时申请备案 现在西部数码的域名备案方式是全程
  • vue-amap的简单使用线路、标记、水波纹

    vue cli3 vue amap的简单使用 开始 关于vue amap事件 其他不想说了 要下班了 项目需要用地图展示线路和标记位置 老板说用高德吧 开始入坑vue amap 开始 高德原生jsAPI已经很成熟 这回在vue项目中用高德v
  • S7-1500与两台S7-1200 Profinet 通讯

    警告 本方案实现的是S7 1500和2台S7 1200都组态在同一个博图软件中 然后实现S7 1500和2台S7 1200之间的Profinet通信 参见下图 并不是大家想像的博图软件中只组态一台S7 1500 然后通过网络和其它2台S7
  • 华为OD机试真题 Java 实现【获得完美走位】【2022Q4 200分】

    一 题目描述 在第一人称射击游戏中 玩家通过键盘的 A S D W 四个按键控制游戏人物分别向左 向后 向右 向前进行移动 从而完成走位假设玩家每按动一次键盘 游戏任务会向某个方向移动一步 如果玩家在操作一定次数的键盘并且各个方向的步数相同
  • 朋友干副业被发现,果断辞职!

    关注公众号 人工智能与大数据精选 点击 最有价值 拉你进群 经常有年轻程序员问我 工作之余可以干点什么副业 不影响工作还能赚点钱 其实像接外包 写作 讲课 知识付费啥的 有很多方式 身边也有朋友通过积累一些外包资源 接外包的收入是年薪的2倍
  • 华为od的一些算法题

    报数游戏 100个人围成一圈 每个人有一个编码 编号从1开始到100 他们从1开始依次报数 报到为M的人自动退出圈圈 然后下一个人接着从1开始报数 直到剩余的人数小于M 请问最后剩余的人在原先的编号为多少 输入描述 输入一个整数参数M 输出