問題描述

給定一個字符串 s,其中只有兩種字符類型:'1' 和 '0'。 返回該字符串中 '10' 的總數。

'10' 的總數是指 '1' 和 '0' 之間的位置數量,這些位置的左邊是 '1' 而右邊是 '0'。

示例

示例 1: 輸入:s = "110" 輸出:1 示例 2: 輸入:s = "0110" 輸出:1 示例 3: 輸入:s = "1100110011100" 輸出:6

解法一

解題思路:

我們需要遍歷字符串 s,檢查每個字符與其相鄰的字符,如果左邊是 '1' 而右邊是 '0',則計數器加一。

/*
 * @lc app=leetcode.cn id=481 lang=javascript
 *
 * [481] 神奇字符串
 */

// @lc code=start
function magicalString(n) {
  let count = 0;
  let s = "";
  for (let i = 0; i < n; i++) {
    s += (i % 2 === 0) ? '1' : '0';
  }
  for (let i = 0; i < s.length - 1; i++) {
    if (s[i] === '1' && s[i + 1] === '0') {
      count++;
    }
  }
  return count;
}
// @lc code=end