科大訊飛筆試題---刪除數字

1、

題目描述:
給定一個長度為 n 的數組,數組元素為 a1, a2, . . , an,每次能刪除任意 a 的任意一位,求將所有數字變成 0 最少需要幾步。例如 103 若刪除第 1 位則變成 3; 若刪除第 2 位則變成13; 若刪除第 3 位則變成 10。
輸入
輸入描述第一行一個正整數 n 代表數組長度。接下來一行 n 個數第 j 個數代表 a。
輸出
輸出一行一個數代表答案。
樣例輸入
5
10 13 22 100 30
樣例輸出
7
提示
數據范圍:
1 ≤ n ≤ 10^5
0< ai< 10^9

2、解答

#include <iostream>
#include <vector>
#include <sstream> // 用于字符串流           
int main()
{int n, count = 0;std::string line;std::cin >> n;std::cin.ignore();//忽略換行符,拿到下一行數據std::vector<int> data;std::getline(std::cin, line); // 讀取一整行// 使用字符串流來解析這行數據std::istringstream iss(line);int number;while (iss >> number) { // 當字符串流中還有整數時,繼續讀取data.push_back(number); // 將讀取的整數添加到向量中}for (int j = 0; j < n; j++){if (data[j] == 0)continue;if (data[j] / 1000000000){data[j] = data[j] % 1000000000;count++;}if (data[j] / 100000000){data[j] = data[j] % 100000000;count++;}if (data[j] / 10000000){data[j] = data[j] % 10000000;count++;}if (data[j] / 1000000){data[j] = data[j] % 1000000;count++;}if (data[j] / 100000){data[j] = data[j] % 100000;count++;}if (data[j] / 10000){data[j] = data[j] % 10000;count++;}if (data[j] / 1000){data[j] = data[j] % 1000;count++;}if (data[j] / 100){data[j] = data[j] % 100;count++;}if (data[j] / 10){data[j] = data[j] % 10;count++;}if (data[j])count++;}std::cout << count << std::endl;return 0;
}

關鍵代碼

代碼段中,使用了 std::getline 來從標準輸入讀取一整行數據,然后使用 std::istringstream 來解析這行數據中的整數,并將它們存儲到一個 std::vector<int> 容器中。這是一個常見的模式,用于處理和轉換由空格分隔的輸入數據。下面是對每個步驟的詳細解釋:

std::getline(std::cin, line); // 讀取一整行
  • 這行代碼使用 std::getline 函數從標準輸入(通常是鍵盤輸入)讀取一整行文本,并將其存儲在字符串變量 line 中。這種方法可以讀取包含空格的整行輸入,直到遇到換行符。
std::istringstream iss(line);
  • 創建了一個 std::istringstream 對象 iss,并用之前從標準輸入讀取的字符串 line 初始化它。std::istringstream 是從 <sstream> 頭文件中提供的一個類,它允許我們將字符串作為流來處理,這樣可以使用類似于從文件或標準輸入讀取的方式來從字符串中提取數據。
int number;
while (iss >> number) { // 當字符串流中還有整數時,繼續讀取
  • 在這個循環中,iss >> number 嘗試從 iss 字符串流中提取一個整數到變量 number 中。如果成功,表達式的結果為 true,循環繼續。如果遇到非整數數據或流結束,表達式結果為 false,循環停止。
    data.push_back(number); // 將讀取的整數添加到向量中
}
  • 每次循環時,如果成功從流中讀取了一個整數,就使用 push_back 方法將這個整數添加到 std::vector<int> 類型的向量 data 中。這樣,所有從輸入行中讀取的整數都會被依次存儲在 data 向量中。

這種方法非常適合于處理和解析由空格分隔的整數輸入,可以靈活地應用于多種需要從文本行中提取多個數據項的場景。

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

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

相關文章

AWS容器之Amazon ECS

Amazon Elastic Container Service&#xff08;Amazon ECS&#xff09;是亞馬遜提供的一種完全托管的容器編排服務&#xff0c;用于在云中運行、擴展和管理Docker容器化的應用程序。可以理解為Docker在云中對應的服務就是ECS。

c語言如何將一個文本內容復制到另外一個文本里

c語言如果要把一個文本文件的文件復制到另外一個文件里&#xff0c;代碼如下 #include<stdio.h>int main() {FILE *fp1,*fp2;char a;fp1fopen("D://cyy//aaa.txt","r");fp2fopen("ccc.cpu","w");while(a!EOF){afgetc(fp1);fput…

linux:切分大文件

文章目錄 1. 前言2. 用法3. 例子 1. 前言 如果傳輸、存儲過程中出現大文件&#xff0c;希望切分成小文件。在 Linux 中&#xff0c;可以使用多種工具來切分大文件&#xff0c;最常用的是 split 命令。split 命令可以將一個大文件按照指定大小切分成多個小文件。 2. 用法 spl…

ImageMagick入門教程(免費圖片格式轉換)

起因是因為我不會圖片轉換,且發現很多圖片轉換都要錢,尤其是pdf轉jpg,于是我就是找到了這個包,自己處理.當然包時不會導的,所以只能用它提供的命令了. 準備工作 下載imagemagick:ImageMagick – Download 我下載的這個,傻瓜式安裝就行,把所有勾勾都勾上,然后要記住安裝路徑,然…

一文讀懂RDMA: Remote Direct Memory Access(遠程直接內存訪問)

目錄 ?編輯 引言 一、RDMA的基本原理 二、RDMA的主要特點 三、RDMA的編程接口 四、RDMA的代碼演示 服務器端代碼&#xff1a; 客戶端代碼&#xff1a; 五、總結 引言 RDMA&#xff0c;全稱Remote Direct Memory Access&#xff0c;即遠程直接內存訪問&#xff0c;是…

客戶機/服務器交互模式

目錄 概述 網絡應用軟件的地位和功能 C/S 模式的特性 容易混淆的術語 C/S 模式的通信過程 網絡協議與 C/S 模式的關系 錯綜復雜的 C/S 交互 總結 概述 客戶機/服務器&#xff08;Client/Server&#xff0c;簡稱 C/S&#xff09;交互模式是一種常見的網絡應用軟件架構&a…

【ChatGPT】 Microsoft Edge 瀏覽器擴展使用 GPT

【ChatGPT】添加 Microsoft Edge 瀏覽器插件免費使用 GPT 文章目錄 準備工作添加擴展注意事項 使用 ChatGPT 可以更高效的搜索到想要的內容&#xff0c;有效節約在搜索引擎中排查正確信息的時間。 準備工作 準備一臺可上網的電腦電腦上安裝有 Windows 自帶的 Microsoft Edge …

二.常見算法--貪心算法

&#xff08;1&#xff09;單源點最短路徑問題 問題描述&#xff1a; 給定一個圖&#xff0c;任取其中一個節點為固定的起點&#xff0c;求從起點到任意節點的最短路徑距離。 例如&#xff1a; 思路與關鍵點&#xff1a; 以下代碼中涉及到宏INT_MAX,存在于<limits.h>中…

python+selenium - UI自動框架之封裝查找元素

單一的元素定位方法不能滿足所有元素的定位&#xff0c;可以根據每個元素的特點來找到合適的方法&#xff0c;可以參考下圖的方法&#xff1a; elementFind.py from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_con…

Vue filter實戰詳解

在 Vue.js 中&#xff0c;filter 是一種用于在模板中對數據進行格式化的功能。它可以用來對數據進行處理、過濾或格式化&#xff0c;然后在模板中直接使用。 filter 是一種全局的 Vue 實例方法&#xff0c;可以在任何組件的模板中使用。 1.定義全局過濾器&#xff1a; 在 Vue…

InnoDB如何解決幻讀的

InnoDB 使用一種稱為 Next-Key Locking 的鎖機制來解決幻讀問題。幻讀發生在一個事務在讀取某個范圍內的記錄時&#xff0c;另一個事務在這個范圍內插入新的記錄。InnoDB 的 Next-Key Locking 結合了行鎖&#xff08;Row Lock&#xff09;和間隙鎖&#xff08;Gap Lock&#xf…

MavLinK協議

由于在公司需要使用這個&#xff0c;我就寫一個文章用于入門級別 簡單介紹 MAVSDK是PX4開源團隊貢獻的基于mavlink通信協議的用于無人機應用開發的SDK&#xff0c;其可以部署在Windows、Linux、Android等多種平臺&#xff0c;并且支持多種語言如c/c、python、Java等。 在官網…

GIS讀研與求職準備:GNSS專業研0

本文介紹GIS方向研究生入學初期&#xff0c;為將來轉碼、從事開發類工作所作求職準備的規劃路徑、方向選擇等方面的建議。 最近&#xff0c;有很多師弟師妹詢問關于研究生方向選擇、求職準備、就業方向選擇等方面的問題。首先非常感謝大家的盲目信任&#xff08;開個玩笑&#…

基于 debian 12 利用 kubeadm 部署 k8s 1.29 版本

基于 debian 12 利用 kubeadm 部署 k8s 1.29 版本 預先準備 準備三臺debian 12的虛擬機&#xff0c;配置如下&#xff1a; HostnameIP配置k8s-master1192.168.31.604vCPU、8GiB 內存、50GiB 硬盤k8s-worker1192.168.31.614vCPU、8GiB 內存、50GiB 硬盤k8s-worker2192.168.31.6…

python從0開始學習(九)

前言 上一篇文章我們介紹了python中的序列類型和元組類型&#xff0c;本篇文章將接著往下將。 1、字典類型 字典類型是根據一個信息查找另一個信息的方式所構成的“鍵值對”&#xff0c;它表示索引用的鍵和對應的值構成的成對關系。它是一個可變數據類型&#xff0c;也就是說它…

Leetcode 3154. Find Number of Ways to Reach the K-th Stair

Leetcode 3154. Find Number of Ways to Reach the K-th Stair 1. 解題思路2. 代碼實現 題目鏈接&#xff1a;3154. Find Number of Ways to Reach the K-th Stair 1. 解題思路 這一題思路上就是一個動態規劃&#xff0c;我們只需要確定一下運行的終止條件&#xff0c;然后寫…

React中顯示數據

SX 會讓你把標簽放到 JavaScript 中。而大括號會讓你 “回到” JavaScript 中&#xff0c;這樣你就可以從你的代碼中嵌入一些變量并展示給用戶。例如&#xff0c;這將顯示 user.name&#xff1a; return (<h1>{user.name}</h1> ); 你還可以將 JSX 屬性 “轉義到 …

《web應用技術》第9次課后作業

一、將前面的代碼繼續完善功能 1、采用XML映射文件的形式來映射sql語句&#xff1b; 2、采用動態sql語句的方式&#xff0c;實現條件查詢的分頁。 二、學習git的使用。 1、每個小組將自己的項目上傳到gitee&#xff0c;學會協作開發&#xff1b; 2、學會從gitee上拉取項目…

【Text2SQL 經典模型】TypeSQL

論文&#xff1a;TypeSQL: Knowledge-Based Type-Aware Neural Text-to-SQL Generation ??? Code: TypeSQL | GitHub 一、論文速讀 本論文是在 SQLNet 網絡上做的改進&#xff0c;其思路也是先預先構建一個 SQL sketch&#xff0c;然后再填充 slots 從而生成 SQL。 論文發…

C++函數指針,鍵值對集合的學習

這段代碼使用了 std::unordered_map 來存儲 std::wstring 作為鍵&#xff08;key&#xff09;&#xff0c;而對應的值&#xff08;value&#xff09;是一個 std::function<void(std::array<int, 5>, SomeClass&, int)> 類型的函數指針。這個結構使得根據字符串…