We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 0ae4ca7 commit f29f437Copy full SHA for f29f437
1404.将二进制表示减到 1 的步骤数.js
@@ -0,0 +1,34 @@
1
+/**
2
+ * @param {string} s
3
+ * @return {number}
4
+ */
5
+var numSteps = function(s) {
6
+ if (s.length === 1) {
7
+ return s[0] === '0' ? 1 : 0;
8
+ }
9
+
10
+ s = s.split('').reverse().map(n => +n);
11
+ let i = 0;
12
+ let result = 0;
13
+ while (i < s.length - 1 || s[i] !== 1) {
14
+ if (s[i] === 0) {
15
+ i++;
16
+ } else {
17
+ let j = i;
18
+ while (j < s.length) {
19
+ s[j]++;
20
+ if (s[j] > 1) {
21
+ s[j] = 0;
22
+ j++;
23
24
+ break;
25
26
27
+ if (j === s.length) {
28
+ s.push(1);
29
30
31
+ result++;
32
33
+ return result;
34
+};
0 commit comments