分班 - 華為OD統一考試(JavaScript 題解)

華為OD機試題庫《C++》限時優惠 9.9

華為OD機試題庫《Python》限時優惠 9.9

華為OD機試題庫《JavaScript》限時優惠 9.9

針對刷題難,效率慢,我們提供一對一算法輔導, 針對個人情況定制化的提高計劃(全稱1V1效率更高)。

看不懂有疑問需要答疑輔導歡迎私VX: code5bug

華為od機試

題目描述

幼兒園兩個班的小朋友在排隊時混在了一起,每位小朋友都知道自己是否與前面一位小朋友是否同班,請你幫忙把同班的小朋友找出來。

小朋友的編號為整數,與前一位小朋友同班用Y表示,不同班用N表示。

輸入描述

輸入為空格分開的小朋友編號和是否同班標志。
比如:6/N 2/Y 3/N 4/Y,表示共4位小朋友,2和6同班,3和2不同班,4和3同班。
其中,小朋友總數不超過999,每個小朋友編號大于0,小于等于999。
不考慮輸入格式錯誤問題。

輸出描述

輸出為兩行,每一行記錄一個班小朋友的編號,編號用空格分開。且:

1、編號需要按照大小升序排列,分班記錄中第一個編號小的排在第一行。

2、若只有一個班的小朋友,第二行為空行。

3、若輸入不符合要求,則直接輸出字符串ERROR。

示例1

輸入:
1/N 2/Y 3/N 4/Y輸出:
1 2
3 4說明:
2的同班標記為Y,因此和1同班。
3的同班標記為N,因此和1、2不同班。
4的同班標記為Y,因此和3同班。
所以1、2同班,3、4同班,輸出為
1 2
3 4

題解

該題目屬于構造算法,也可以歸類為字符串處理和數組操作類型的題目。通過對輸入進行解析并根據條件將小朋友分班,需要保持結果的升序排列,同時處理異常輸入。

解題思路

  1. 數據解析:輸入是以空格分開的小朋友編號和是否同班標志。解析時要把小朋友編號與是否同班的標志分離開。

  2. 分班:從第一個小朋友開始,使用兩個列表分別存放兩個班的小朋友。根據標志 Y 或 N 判斷當前小朋友應該分到哪個班:

  • 如果標志是Y,那么當前小朋友與前一個小朋友同班。

  • 如果標志是N,則當前小朋友與前一個小朋友不同班。

    1. 排序與輸出:對于每個班的小朋友的編號,按照升序排列。并根據題目要求輸出結果:
    • 若兩個班的小朋友編號都不為空,按照第一個編號較小的班級先輸出。
  • 若只有一個班的小朋友,則第二行輸出空行。

  1. 異常處理:如果小朋友編號不在范圍內,直接輸出ERROR

JavaScript

const rl = require('readline').createInterface({input: process.stdin,output: process.stdout,
});var iter = rl[Symbol.asyncIterator]();const readline = async () => (await iter.next()).value;// Author: code5bug
(async () => {const input = (await readline()).split(' ').map((p) => {let [num, flag] = p.split('/');return [parseInt(num), flag];});// cls[2] 數組用于表示兩個班級const cls = Array(2).fill().map(() => []);// 前一個同學所在的班級,輸入是否不合法let pre = 0,err = false;input.forEach(([num, flag]) => {let idx = flag === 'Y' ? pre : pre ^ 1;cls[idx].push(num);// 輸入不合法if (num <= 0 || num > 999) err = true;pre = idx;});if (err) {console.log('ERROR');} else {// 對每個班級的學生編號升序排序cls.forEach((arr) => arr.sort());let r1 = cls[0].join(' ');let r2 = cls[1].join(' ');// 編號需要按照大小升序排列,分班記錄中第一個編號小的排在第一行if (r1.localeCompare(r2) > 0) {[r1, r2] = [r2, r1];}// 打印結果console.log(r1);console.log(r2);}rl.close();
})();

整理題解不易, 如果有幫助到您,請給點個贊 ???? 和收藏 ?,讓更多的人看到。🙏🙏🙏

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/83660.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/83660.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/83660.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【TCP/IP和OSI模型以及區別——理論匯總】

參考小林code和卡爾哥&#xff0c;感恩&#xff01; 網絡基礎篇 面試官您好&#xff01;OSI和TCP/IP是網絡通信中兩個關鍵模型&#xff0c;本質都是分層處理數據傳輸&#xff0c;但設計理念和應用場景差異很大。 OSI模型是理論上的七層架構&#xff0c;從下到上依次是物理層…

極客大挑戰 2019 EasySQL 1(萬能賬號密碼,SQL注入,HackBar)

題目 做法 啟動靶機&#xff0c;打開給出的網址 隨便輸點東西進去&#xff0c;測試一下 輸入1、1’、1"判斷SQL語句閉合方式 輸入以上兩個都是以下結果 但是&#xff0c;輸入1’時&#xff0c;出現的是另外結果 輸入1&#xff0c;1"時&#xff0c;SQL語句沒有…

Tauri(2.5.1)+Leptos(0.7.8)開發桌面應用--簡單的工作進度管理

在前期工作&#xff08;Tauri(2.5.1)Leptos(0.7.8)開發桌面應用--程序啟動界面_tauri 程序啟動畫面-CSDN博客&#xff09;的基礎上繼續進行自用桌面小程序的開發。為了方便管理工作進度&#xff0c;決定自己造輪子。效果如下&#xff1a; 工作進度管理系統 在編寫程序過程中&am…

java面試 網絡編程與 Java I/O:技術要點解析

java面試 網絡編程與 Java I/O&#xff1a;技術要點解析 網絡編程與 Java I/O&#xff1a;技術要點解析一、TCP 和 UDP 的區別TCP&#xff08;Transfer Control Protocol&#xff09;UDP&#xff08;User Datagram Protocol&#xff09;TCP 的三次握手與四次揮手 二、Java 的幾…

PhpStorm設置中文

環境信息 系統版本&#xff1a;Windows11 22H2 PhpStorm版本&#xff1a;2025.1.1【Build #PS-251.25410.148】 設置中文 PhpStorm并不需要安裝插件或下載相應的漢化包進行漢化 依次點擊點擊&#xff1a; file或右上角設置按鈕→ 進入Settings→ 找到Appearance & Behav…

【監控】Spring Boot 應用監控

這段配置是 Spring Boot 應用中對 Actuator 和 Micrometer 監控系統的配置&#xff0c;用于將應用的指標暴露給 Prometheus 進行收集。下面我將詳細介紹這種配置方式及其提供的指標。 配置說明 這個配置主要涉及 Spring Boot Actuator 和 Micrometer 兩個核心組件&#xff1a…

學習筆記(23): 機器學習之數據預處理Pandas和轉換成張量格式[1]

學習筆記(23): 機器學習之數據預處理Pandas和轉換成張量格式[1] 學習機器學習&#xff0c;需要學習如何預處理原始數據&#xff0c;這里用到pandas&#xff0c;將原始數據轉換為張量格式的數據。 1、安裝pandas pip install pandas 2、寫入和讀取數據 >>創建一個人工…

一臺電腦聯網如何共享另一臺電腦?網線方式

前言 公司內網一個人只能申請一個賬號和一個主機設備&#xff1b;會檢測MAC地址&#xff1b;如果有兩臺設備&#xff0c;另一臺就沒有網&#xff1b;因為是聯想老電腦&#xff0c;共享熱點用不了&#xff0c;但是有一根網線&#xff0c;現在解決網線方式共享網絡&#xff1b; …

Spring Boot 基礎知識全面解析:快速構建企業級應用的核心指南

一、Spring Boot 概述&#xff1a;重新定義 Java 開發 1.1 什么是 Spring Boot&#xff1f; Spring Boot 是基于 Spring 框架的快速開發框架&#xff0c;旨在簡化 Spring 應用的初始搭建及開發過程。它通過 「約定優于配置」&#xff08;Convention Over Configuration&#…

CentOS-stream-9 Zabbix的安裝與配置

一、Web環境搭建部署Zabbix時&#xff0c;選擇合適的MariaDB、PHP和Nginx版本非常重要&#xff0c;以確保兼容性和最佳性能。以下是建議版本&#xff1a;Zabbix 6.4 MariaDB&#xff1a;官方文檔推薦使用MariaDB 10.3或更高版本。對于CentOS Stream 9&#xff0c;建議使用Maria…

CppCon 2014 學習:Adventures in Updating a Legacy Vintage Codebase

“VINTAGE” 部分是對現實中飛行模擬系統中遺留系統復雜性的描述。以下是對關鍵點的理解與拆解&#xff1a; 飛行模擬系統的背景 多環境、多語言、多硬件&#xff1a; 編程語言&#xff1a; 混用的“遺留語言”&#xff1a;Ada, C, C, Fortran, Jovial, PL/M, Pascal不同語言…

【計算機】計算機存儲器的分類與特性

文章目錄 一、按作用層次分類1. 主存儲器&#xff08;內存&#xff09;2. 輔助存儲器&#xff08;外存&#xff09;3. 高速緩沖存儲器&#xff08;Cache&#xff09; 二、按存儲介質分類1. 半導體存儲器2. 磁存儲技術3. 光存儲發展 三、按存取方式分類1. 隨機存儲器技術細節2. …

Redisson - 實現延遲隊列

Redisson 延遲隊列 Redisson 是基于 Redis 的一款功能強大的 Java 客戶端。它提供了諸如分布式鎖、限流器、阻塞隊列、延遲隊列等高可用、高并發組件。 其中&#xff0c;RDelayedQueue 是對 Redis 數據結構的高階封裝&#xff0c;能讓你將消息延遲一定時間后再進入消費隊列。…

上門服務小程序訂單系統框架設計

一、邏輯分析 上門服務小程序訂單系統主要涉及服務展示、用戶下單、訂單處理、服務人員接單與服務完成反饋等核心流程。 服務展示&#xff1a;不同類型的上門服務&#xff08;如家政、維修等&#xff09;需要在小程序中展示詳細信息&#xff0c;包括服務名稱、價格、服務內容介…

Android apk裝機編譯類型: verify、speed-profile, speed與啟動耗時

Android apk裝機編譯類型: verify、speed-profile, speed與啟動耗時 Dex2oat (dalvik excutable file to optimized art file) &#xff0c;對 dex 文件進行編譯優化&#xff0c;Android 虛擬機可識別的是dex文件&#xff0c;應用運行過程如果每次都將dex文件加載內存&#xff…

winrm登錄失敗,指定的憑據被服務器拒絕

winrm登錄失敗&#xff0c;指定的憑據被服務器拒絕。 異常提示&#xff1a;the specified credentials were rejected by the server 在windows power shell執行 set-executionpolicy remotesigned winrm quickconfig winrm set winrm/config/service/auth {Basic"true…

Unity3D ET框架游戲腳本系統解析

前言 ET框架在Unity3D中實現的GamePlay腳本系統是一種革命性的、基于ECS&#xff08;實體-組件-系統&#xff09;架構的設計&#xff0c;它徹底改變了傳統的基于MonoBehaviour的游戲邏輯編寫方式。其核心思想是追求高性能、高解耦、易熱更新&#xff0c;特別適合大型復雜的網絡…

android與Qt類比

一、概念對應關系 Android RecyclerView 組件類比描述Qt 模型 - 視圖組件Qt 類比描述RecyclerView畫板&#xff08;容器&#xff09;QAbstractItemView視圖&#xff08;展示數據的容器&#xff0c;如列表、表格&#xff09;RecyclerView.Adapter畫布&#xff08;數據橋梁&…

Jenkins 2.479.1安裝和郵箱配置教程

1.安裝 在JDK安裝并設置環境變量完成后&#xff0c;下載官網對應的war版本&#xff0c;在對應目錄下打開命令行窗口并輸入 java -jar jenkins.war其余參數感興趣可以自行查閱&#xff0c;這里啟動的 jenkins 服務默認占用8080端口&#xff0c;在瀏覽器輸入 localhost:8080進入…

多分辨率 LCD 的 GUI 架構設計與實現

1.1多分辨率顯示系統的挑戰與解決方案 1.1.1 分辨率適配的核心問題 在嵌入式系統中,同時支持不同分辨率的 LCD(如 240160、320480 等)面臨以下挑戰: 布局適配:同一界面元素在不同分辨率下需要調整大小和位置 字體顯示:小分辨率屏幕需要更小的字體,而大分辨率需要更清…