單身狗(Python)

題目描述

單身狗

“單身狗”是中文對于單身人士的一種愛稱。本題請你從上萬人的大型派對中找出落單的客人,以便給予特殊關愛。

輸入格式:

輸入第一行給出一個正整數 N(≤50000),是已知夫妻/伴侶的對數;隨后 N 行,每行給出一對夫妻/伴侶——為方便起見,每人對應一個 ID 號,為 5 位數字(從 00000 到 99999),ID 間以空格分隔;之后給出一個正整數 M(≤10000),為參加派對的總人數;隨后一行給出這 M 位客人的 ID,以空格分隔。題目保證無人重婚或腳踩兩條船。

輸出格式:

首先第一行輸出落單客人的總人數;隨后第二行按 ID 遞增順序列出落單的客人。ID 間用 1 個空格分隔,行的首尾不得有多余空格。

輸入樣例:

3
11111 22222
33333 44444
55555 66666
7
55555 44444 10000 88888 22222 11111 23333

輸出樣例:

5
10000 23333 44444 55555 88888


解題思路

本題是一道經典的哈希表問題。我們可以利用字典來存儲每對夫妻/伴侶的關系,然后遍歷參加派對的客人,檢查他們是否有伴侶參加了派對。如果沒有,則說明這個人是落單客人,將他的ID加入到結果列表中。最后,按照ID遞增的順序輸出結果。

具體實現步驟如下:

  1. 讀取輸入,獲取已知夫妻/伴侶的對數 n,已知夫妻/伴侶的ID號,參加派對的總人數 m 以及參加派對的客人的ID號。
  2. 初始化一個字典 partners 以保存夫妻/伴侶的關系。
  3. 遍歷每對夫妻/伴侶,將其ID號與對方的ID號存儲在 partners 中。
  4. 初始化一個集合 guests 以保存參加派對的客人的ID號。
  5. 遍歷每位客人,檢查其是否有伴侶參加派對。如果沒有,則將其ID號添加到結果列表 lonely_guests 中。
  6. 如果有任何落單客人,則按升序排序并輸出他們的數量和ID號。

Python代碼實現

# 獲取配對數目
n = int(input())# 初始化字典以存儲配對關系
partners = {}# 將配對關系輸入字典
for i in range(n):temp1, temp2 = map(int, input().split())partners[temp1] = temp2partners[temp2] = temp1# 獲取客人數目
m = int(input())# 輸入客人集合
guests = set(map(int, input().split()))# 初始化列表以存儲落單客人
lonely_guests = []# 檢查是否為落單客人
for guest in guests:partner = partners.get(guest, None)if partner is None or partner not in guests:lonely_guests.append(guest)# 將落單客人按升序排序
lonely_guests.sort()# 輸出落單客人的數量
print(len(lonely_guests))# 如果有落單客人,則輸出其編號
if len(lonely_guests) > 0:print(" ".join("{:05d}".format(g) for g in lonely_guests))

以上代碼實現了題目要求的功能。我們首先通過輸入函數獲取已知夫妻/伴侶的對數 n,已知夫妻/伴侶的ID號,參加派對的總人數 m 以及參加派對的客人的ID號。

然后,我們初始化一個字典 partners 以保存夫妻/伴侶的關系。在輸入夫妻/伴侶的ID號時,我們將每對ID號存儲在 partners 中。

接下來,我們初始化一個集合 guests 以保存參加派對的客人的ID號。在輸入參加派對的客人的ID號時,我們將每個ID號添加到 guests 中。

然后,我們遍歷每位客人,檢查其是否有伴侶參加派對。如果沒有,則將其ID號添加到結果列表 lonely_guests 中。

最后,如果有任何落單客人,則按升序排序并輸出他們的數量和ID號。

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

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

相關文章

CPU 混合推理,非常見大模型量化方案:“二三五六” 位量化

本篇文章聊聊網上聊的比較少的具體量化操作,非常見整型位數的量化,來自讓各種開源模型能夠在 CPU 環境、CPU & GPU 環境混合推理的技術方案:llama.cpp 。 寫在前面 接下來,有計劃分享一些關于各種開源模型的實踐內容。為了能…

安裝ThingBox Eclipse Plugin

1. ChatGPT問 The latest version of the ThingBox Eclipse Plugin requires Eclipse IDE 2021-06 or later. 2. PTC官網下載 MED-61378-CD-092_F000_Eclipse-Plugin-9-0-1.zip文件, 和 MED-61098-CD-085_F000_ThingWorx-Extension-SDK-8-5-0(需要賬號&#xff09…

虛擬化邏輯架構:KVM虛擬機通過OVS端口組實現網絡連接

目錄 一、實驗 1.CentOS 7 安裝 OpenVSwitch(構建RPM安裝包) 2.KVM虛擬機通過OVS端口組實現網絡連接 二、問題 1.安裝openvswitch-2.5.10報錯 2.virt-install未找到命令 3.如何刪除自定義網絡 一、實驗 1.CentOS 7 安裝 OpenVSwitch(構建RPM安裝包&#xff…

字符串知識點

一. 1.字符占據一個字節 2.字符數組:char name[15] { W, a, n, g, L, i}; 字符串:char name[15] “Wang Li”; 二. 1.字符串:為有效長度(有效字符的個數)而不是字符數組的長度; 2.&#…

創建一個有陰影的threejs三維幾何體

import * as THREE from "three" import { OrbitControls } from three/examples/jsm/controls/OrbitControlsconst width window.innerWidth; const height window.innerHeight;//創建場景 const scene new THREE.Scene(); scene.background new THREE.Color(#6…

LinuxBasicsForHackers筆記 --Python 腳本基礎

添加Python模塊 Python 有一個專門用于安裝和管理 Python 包的包管理器,稱為 pip(Pip Installs Packages)。由于我們在這里使用 Python 3,因此您將需要 Python 3 的 pip 來下載和安裝軟件包。默認情況下應包含 Pip,但…

學習Node.js與Webpack總結

今天學習了模塊化的簡介,其實一個項目是由很多個模塊文件組成的,它們有它們各自的功能和用途來協助這個項目的完成,這樣的模塊組成有很多的好處比如提高代碼的復用性、還可以按需加載、還有獨立的作用域,還需要搞清楚的一點就是No…

如何截取Hive數組中的前N個元素?

文章目錄 1、需求描述2、使用索引3、使用posexplode()4、轉換為字符串操作 1、需求描述 需求:截取任意給定數組中的前N個元素,返回截取后的子數組 假設我們有如下三種類型的Hive數組: select array(1,2,3,4) -- [1,2,3,4] selec…

vue前端訪問Django channels WebSocket失敗

現象 前端報錯:SSH.vue:51 WebSocket connection to ‘ws://127.0.0.1:8000/server/terminal/120.59.88.26/22/1/’ failed: 后端報錯:Not Found: /server/terminal/120.79.83.26/22/1/ 原因 django的版本與channels的版本不匹配(django…

關于個人職業選擇

職業選擇,一直是個老生常談的話題。這并不是一個容易做的決定。 讓我們來看看AI怎么說。 首先是方向性的回答: 然后是一些具體的回答 我個人比較傾向于深耕網絡安全。這是一個很有趣也是一個持續發展著的領域。 不知道關于這個事情你怎么看&#xff0…

在線學習平臺-課程分頁、用戶管理、教師查詢

在線學習平臺------手把手教程👈 用戶管理 添加功能增強 新增屬性 若依里的用戶模塊(SysUser)是沒有課程這一屬性的,要實現我們自己的課程分頁查詢功能 這個位置傳入的實體類SysUser要加上classId,記得加上get、set方法 更改sql語句 ctrl 鼠標左鍵不斷點進去…

DS二叉排序樹之刪除

Description 給出一個數據序列,建立二叉排序樹,并實現刪除功能 對二叉排序樹進行中序遍歷,可以得到有序的數據序列 Input 第一行輸入t,表示有t個數據序列 第二行輸入n,表示首個序列包含n個數據 第三行輸入n個數據…

藍橋杯周賽 第 1 場 強者挑戰賽 6. 小球碰撞【算法賽】(思維題/最長上升子序列LIS)

題目 https://www.lanqiao.cn/problems/9494/learning/?contest_id153 思路來源 Aging代碼 題解 二分時間t&#xff0c;第i個小球對應一個起點pi、終點pit*vi的區間&#xff0c;問題轉化為&#xff0c; 選最多的區間&#xff0c;使得不存在區間包含&#xff08;即li<l…

微信小程序過濾器之計算當前時間差

微信小程序過濾器之計算當前時間差 前言一、wxs簡介二、使用步驟1.定義2.使用 前言 最近遇到了一個需求&#xff0c;將小程序里面的具體時間2023-12-11 09:41:06轉為當前時間差10小時前&#xff0c;這塊可以使用js邏輯函數對數據進行處理&#xff0c;但這里我們采用微信小程序…

Error: Failed to resolve vue/compiler-sfc——vite項目啟動報錯——npm run serve

運行項目時&#xff0c;報錯如下&#xff1a; Error: Failed to resolve vue/compiler-sfc 根據報錯信息的提示&#xff1a;vue的版本必須大于3.2.25&#xff0c;經過查看package.json文件&#xff0c;可以看到vue的版本為3.2.36&#xff0c;是滿足條件的。 因此考慮緩存問題&…

【OPNEGIS】Geoserver原地升級jetty,解決Apache HTTP/2拒絕服務漏洞 (CVE-2023-44487)

Geoserver是我們常用的地圖服務器&#xff0c;在開源系統中的應用比較廣泛。在實際環境中&#xff0c;我們可能會選用官方的二進制安裝包進行部署&#xff0c;這樣只要服務器上有java環境就可以運行&#xff0c;方便在現場進行部署。 1.問題來源 這次由于甲方一月一次的漏洞掃…

Mysql表的數據類型

數據類型 https://www.sjkjc.com/mysql/varchar/ MySQL 中的數據類型包括以下幾個大類&#xff1a; 字符串類型 數字類型 日期和時間類型 二進制類型 地理位置數據類型 JSON 數據類型 MySQL 字符串數據類型 VARCHAR&#xff1a;純文本字符串&#xff0c;字符串長度是可變的…

智能優化算法應用:基于陰陽對算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼

智能優化算法應用&#xff1a;基于陰陽對算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼 文章目錄 智能優化算法應用&#xff1a;基于陰陽對算法3D無線傳感器網絡(WSN)覆蓋優化 - 附代碼1.無線傳感網絡節點模型2.覆蓋數學模型及分析3.陰陽對算法4.實驗參數設定5.算法結果6.參考文…

云計算、邊緣計算、霧計算

目錄 云計算邊緣計算霧計算 云計算 云計算是基于互聯網的計算模式&#xff0c;允許用戶通過網絡獲取計算資源、存儲資源、數據庫等服務&#xff0c;無需了解和管理底層 云計算是分布式計算的一種&#xff0c;指的是通過網絡“云”將巨大的數據計算處理程序分解成無數個小程序…

Java - Mybatis的緩存機制、集成SpringBoot后緩存相關問題

mybaits提供一級緩存&#xff0c;和二級緩存 一級緩存&#xff08;默認開啟&#xff09; 一級緩存是SqlSession級別的緩存。在操作數據庫時需要構造 sqlSession對象&#xff0c;在對象中有一個(內存區域)數據結構&#xff08;HashMap&#xff09;用于存儲緩存數據。不同的sqlSe…