小红的多彩糖葫芦

[题目链接](https://www.nowcoder.com/practice/c97aabc25f284994a23c4f21039ffe6d)

思路

小红从上到下依次吃糖葫芦,一旦发现当前这颗和刚吃的那颗颜色相同就丢掉整串。因此我们只需找到第一个与前一个字符相同的位置。

从下标 1 开始遍历字符串,若 ,则小红在第 颗停下,答案为 (即前 颗已被吃掉)。若整串都没有相邻重复,答案为字符串长度

时间复杂度 ,空间复杂度 (存储字符串)。

代码

#include <iostream>
#include <string>
using namespace std;

int main() {
    string s;
    cin >> s;
    int ans = s.size();
    for (int i = 1; i < (int)s.size(); i++) {
        if (s[i] == s[i - 1]) {
            ans = i;
            break;
        }
    }
    cout << ans << endl;
    return 0;
}
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String s = sc.next();
        int ans = s.length();
        for (int i = 1; i < s.length(); i++) {
            if (s.charAt(i) == s.charAt(i - 1)) {
                ans = i;
                break;
            }
        }
        System.out.println(ans);
    }
}
s = input()
ans = len(s)
for i in range(1, len(s)):
    if s[i] == s[i - 1]:
        ans = i
        break
print(ans)
const readline = require('readline');
const rl = readline.createInterface({ input: process.stdin });
rl.on('line', (s) => {
    let ans = s.length;
    for (let i = 1; i < s.length; i++) {
        if (s[i] === s[i - 1]) {
            ans = i;
            break;
        }
    }
    console.log(ans);
    rl.close();
});