作者devilkool (全糖可可粉)
看板Marginalman
標題Re: [閒聊] 每日leetcode
時間Thu May 30 01:24:37 2024
※ 引述《JIWP (神楽めあ的錢包)》之銘言:
: 1404. Number of Steps to Reduce a Number in Binary Representation to One
: 有一個二進位的整數以字串形式表示
: 可以做以下2種處理
: 1.如果現在的數字是偶數那除以2
: 2.如果現在的數字是奇數那+1
: 請問要做幾次操作才可以把這個數字變成1?
你們都會數學
剩我用字串暴力拆了
public int NumSteps(string s)
{
var sb = new StringBuilder(s);
var steps = 0;
while (sb.Length > 1)
{
var n = sb.Length-1;
if (sb[n] == '0')
{
sb.Length--;
}
else
{
while (n >= 0 && sb[n] == '1')
{
sb[n] = '0';
n--;
}
if (n >= 0)
{
sb[n] = '1';
}
else
{
sb.Insert(0, '1');
}
}
steps++;
}
return steps;
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.230.52.80 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Marginalman/M.1717003480.A.7CC.html
推 sustainer123: 沒R 我就模擬 我感覺有一行漂亮的數學解 05/30 01:25
→ sustainer123: 但我想不到 05/30 01:25