小红的多彩糖葫芦
[题目链接](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();
});

京公网安备 11010502036488号