力扣:找到一個數字的 K 美麗值(C++)

一個整數?num?的?k?美麗值定義為?num?中符合以下條件的?子字符串?數目:

  • 子字符串長度為?k?。
  • 子字符串能整除?num?。

給你整數?num?和?k?,請你返回?num?的 k 美麗值。

注意:

  • 允許有?前綴?0?。
  • 0?不能整除任何值。

一個?子字符串?是一個字符串里的連續一段字符序列。

示例 1:

輸入:num = 240, k = 2
輸出:2
解釋:以下是 num 里長度為 k 的子字符串:
- "240" 中的 "24" :24 能整除 240 。
- "240" 中的 "40" :40 能整除 240 。
所以,k 美麗值為 2 。

示例 2:

輸入:num = 430043, k = 2
輸出:2
解釋:以下是 num 里長度為 k 的子字符串:
- "430043" 中的 "43" :43 能整除 430043 。
- "430043" 中的 "30" :30 不能整除 430043 。
- "430043" 中的 "00" :0 不能整除 430043 。
- "430043" 中的 "04" :4 不能整除 430043 。
- "430043" 中的 "43" :43 能整除 430043 。
所以,k 美麗值為 2 。

提示:

  • 1 <= num <= 109
  • 1 <= k <= num.length?(將?num?視為字符串)

?題解一

to_string():將int轉為string

stoi():將string轉為int? ? //在這里用的是strtoll()

strtoll()? :用于將字符串轉換為長長整型(long long int)? ? ?//使用字符串到數值的轉換函數,并檢查是否溢出。

substr() 字符串的切片函數

end?是一個?const char*?類型的指針,通常用于遍歷或標記字符串中的某個位置。(可以在循環中通過?end++?逐步移動指針。)

.c_str()?返回一個?const char*?指針,指向?sub?的首字符地址。

#include <string>
#include <cstdlib>
#include <cerrno>using namespace std;class Solution {
public:int divisorSubstrings(int num, int k) {string s = to_string(num);int n = s.size();if (n < k) return 0;int count = 0;for (int i = 0; i <= n - k; ++i) {string sub = s.substr(i, k);char* end;errno = 0; // 重置錯誤標志long long val = strtoll(sub.c_str(), &end, 10);// 檢查轉換是否完全成功if (end != sub.c_str() + sub.size()) {continue;}// 處理溢出情況if (errno == ERANGE) {// 只有當子字符串等于原字符串時才計數if (sub.size() == s.size() && sub == s) {++count;}continue;}// 忽略值為0的情況if (val == 0) {continue;}// 檢查是否能整除if (num % val == 0) {++count;}}return count;}
};

題解二

class Solution {
public:int divisorSubstrings(int num, int k) {long sum = 0 , p = pow(10, k) , n = num;//從右往左滑,當沒有劃到最左邊while(n / (p / 10) > 0){//讀取當前數,如果可以整除+1int curNum = n % p;if(curNum != 0 && num % curNum == 0) sum++;n /= 10;}return sum;}
};

官方給的,喜歡喜歡

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

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

相關文章

C/C++藍橋杯算法真題打卡(Day3)

一、P8598 [藍橋杯 2013 省 AB] 錯誤票據 - 洛谷 算法代碼&#xff1a; #include<bits/stdc.h> using namespace std;int main() {int N;cin >> N; // 讀取數據行數unordered_map<int, int> idCount; // 用于統計每個ID出現的次數vector<int> ids; …

<建模軟件安裝教程1>Blender4.2系列

Blender4.2安裝教程 0注意&#xff1a;Windows環境下安裝 第一步&#xff0c;百度網盤提取安裝包。百度網盤鏈接&#xff1a;通過網盤分享的文件&#xff1a;blender.zip 鏈接: https://pan.baidu.com/s/1OG0jMMtN0qWDSQ6z_rE-9w 提取碼: 0309 --來自百度網盤超級會員v3的分…

C語言八股---預處理,編譯,匯編與鏈接篇

前言 從多個.c文件到達一個可執行文件的四步: ??預處理–>編譯–>匯編–>鏈接 預處理 預處理過程就是預處理器處理這些預處理指令(要不然編譯器完全不認識),最終會生成 main.i的文件 主要做的事情有如下幾點: 展開頭文件展開宏條件編譯刪除注釋添加行號等信息保留…

用Deepseek寫一個 HTML 和 JavaScript 實現一個簡單的飛機游戲

大家好&#xff01;今天我將分享如何使用 HTML 和 JavaScript 編寫一個簡單的飛機游戲。這個游戲的核心功能包括&#xff1a;控制飛機移動、發射子彈、敵機生成、碰撞檢測和得分統計。代碼簡潔易懂&#xff0c;適合初學者學習和實踐。 游戲功能概述 玩家控制&#xff1a;使用鍵…

面向高質量視頻生成的擴散模型方法-算法、架構與實現【附核心代碼】

目錄 算法原理 架構 代碼示例 算法原理 正向擴散過程&#xff1a;從真實的視頻數據開始&#xff0c;逐步向其中添加噪聲&#xff0c;隨著時間步 t 的增加&#xff0c;噪聲添加得越來越多&#xff0c;最終將原始視頻數據變成純噪聲。數學上&#xff0c;t 時刻的視頻數據與 t…

水下機器人推進器PID參數整定與MATLAB仿真

水下機器人推進器PID參數整定與MATLAB仿真 1. PID控制原理 目標:通過調節比例(P)、積分(I)、微分(D)參數,使推進器輸出力快速穩定跟蹤期望值。傳遞函數(示例):推進器動力學模型可簡化為: [ G(s) = \frac{K}{\tau s + 1} \cdot e^{-Ts} ] 其中:K為增益,τ為時間常…

游戲引擎學習第149天

今日回顧與計劃 在今天的直播中&#xff0c;我們將繼續進行游戲的開發工作&#xff0c;目標是完成資產文件&#xff08;pack file&#xff09;的測試版本。目前&#xff0c;游戲的資源&#xff08;如位圖和聲音文件&#xff09;是直接從磁盤加載的&#xff0c;而我們正在將其轉…

Java函數式接口四部曲之Consumer

Consumer 是一個函數式接口&#xff0c;位于 java.util.function 包中。它表示一個接受單個輸入參數并且不返回任何結果的操作。Consumer 通常用于需要對輸入參數執行某些操作但不產生返回值的場景。 Consumer 接口定義了一個抽象方法&#xff1a;accept(T t)&#xff1a;接受…

ForceMimic:以力為中心的模仿學習,采用力運動捕捉系統進行接觸豐富的操作

25年3月來自上海交大盧策吾教授團隊的論文“ForceMimic: Force-Centric Imitation Learning with Force-Motion Capture System for Contact-Rich Manipulation”。 在大多數接觸豐富的操作任務中&#xff0c;人類會將隨時間變化的力施加到目標物體上&#xff0c;以補償視覺引…

【愚公系列】《Python網絡爬蟲從入門到精通》045-Charles的SSL證書的安裝

標題詳情作者簡介愚公搬代碼頭銜華為云特約編輯&#xff0c;華為云云享專家&#xff0c;華為開發者專家&#xff0c;華為產品云測專家&#xff0c;CSDN博客專家&#xff0c;CSDN商業化專家&#xff0c;阿里云專家博主&#xff0c;阿里云簽約作者&#xff0c;騰訊云優秀博主&…

vulnhub靶場【digitalworld.local系列】的electrical靶機

前言 靶機&#xff1a;digitalworld.local-electrical&#xff0c;IP地址為192.168.10.12&#xff0c;后期因為卡頓&#xff0c;重新安裝&#xff0c;ip地址后面為192.168.10.11 攻擊&#xff1a;kali&#xff0c;IP地址為192.168.10.6 kali采用VMware虛擬機&#xff0c;靶機…

macos 程序 運行

sudo xattr -r -d com.apple.quarantine [/Applications/Name]使用stow 管理配置文件

多視圖幾何--結構恢復--三角測量

三角測量 1. 核心公式推導 假設兩個相機的投影矩陣為 P P P 和 P ′ P P′&#xff0c;對應的匹配圖像點(同名點)為 ( u , v ) (u, v) (u,v) 和 ( u ′ , v ′ ) (u, v) (u′,v′)&#xff0c;目標是求解三維點 X [ X x , X y , X z , 1 ] T X [X_x, X_y, X_z, 1]^T X…

共享內存的原理和創建

目錄 共享內存的原理 共享內存的創建 代碼實現創建 共享內存的管理指令 我們今天來學習共享內存&#xff01;&#xff01;&#xff01; 共享內存的原理 兩個進程同時使用內存中開辟的共享空間進行通信就是建立并使用共享內存進行進程間的通信。System V 共享內存&#xf…

3.10[A]cv

核心模塊&#xff1a; rasterizer&#xff1a;光柵化器&#xff0c;負責三角形遍歷和像素繪制Shader&#xff1a;包含頂點著色器和多種片元著色器Texture&#xff1a;紋理處理模塊 頂點著色器的計算量一般遠小于片元著色器。因為組成三角形的頂點相對有限&#xff0c;而片元需…

mac使用Homebrew安裝miniconda(mac搭建python環境),并在IDEA中集成miniconda環境

一、安裝Homebrew mac安裝brew 二、使用Homebrew安裝miniconda brew search condabrew install miniconda安裝完成后的截圖&#xff1a; # 查看是否安裝成功 brew list環境變量&#xff08;無需手動配置&#xff09; 先執行命令看能不能正常返回&#xff0c;如果不能正常…

多視圖幾何--相機標定--從0-1理解張正友標定法

1基本原理 1.1 單應性矩陣&#xff08;Homography&#xff09;的建立 相機模型&#xff1a;世界坐標系下棋盤格平面&#xff08;Z0&#xff09;到圖像平面的投影關系為&#xff1a; s [ u v 1 ] K [ r 1 r 2 t ] [ X Y 1 ] s \begin{bmatrix} u \\ v \\ 1 \end{bmatrix} K…

WWDG窗口看門狗原理

WWDG&#xff08;窗口看門狗&#xff09;在窗口期喂狗 作用&#xff1a; 原理&#xff1a; 框圖 WWDG寄存器&#xff1a; WWDG_CR控制寄存器 WWDG_CFR配置寄存器 狀態寄存器WWDG_SR 超時時間計算公式 最小最大超時值 HAL配置函數&#xff1a; 1. IWDG 和 WWDG 的區別 IWDG&…

無公網IP也能遠程控制Windows:Linux rdesktop內網穿透實戰

文章目錄 前言1. Windows 開啟遠程桌面2. Linux安裝rdesktop工具3. Win安裝Cpolar工具4. 配置遠程桌面地址5. 遠程桌面連接測試6. 設置固定遠程地址7. 固定地址連接測試 前言 如今遠程辦公已經從一種選擇變成了許多企業和個人的必修課&#xff0c;而如何在Linux系統上高效地訪…

Pygame實現射擊鴨子游戲3-2

2 鴨子類Target的創建 2.1 __init__()函數 Target類的__init__()函數代碼如圖5所示。 圖5 __init__()函數代碼 其中&#xff0c;第18行將Target類聲明為pygame.sprite.Sprite類的子類&#xff1b;第19行代碼中&#xff0c;__init__()函數的img_path參數表示鴨子圖片的文件名…