美团 2023-3-11

发布时间 2023-03-24 14:38:18作者: feifei102

第一题:字符串修改

题目描述

小美有一个由数字字符组成的字符串。现在她想对这个字符串进行一些修改。

具体地,她可以将这个字符串中任意位置字符修改为任意的数字字符。

她想知道,至少进行多少次修改,可以使得修改后的字符串不包含两个连续相同的字符?

例如,对于字符串”111222333”。她可以进行3次修改将其变为”121212313。

输入描述

一行,一个字符串s,保证s只包含数字字符。1<=|s|<=100000

  • 111222333

输出描述

一行,一个整数,表示修改的最少次数。

  • 3
#include<stdio.h>
#include<iostream>

using namespace std;

int mod(string s) {
    int num=0;
    if (s.size() < 2) return 0;
    for (int i = 1; i < s.size()-1; i++) {
        if (s[i] == s[i - 1]) {
            s[i] = max(s[i + 1], s[i - 1]) + 1;
            num++;
        }
    }
    if (s[s.size() - 1] == s[s.size() - 2]) num++;
    return num;
}
int main() 
{
    string s;
    cin >> s;
    cout<<mod(s);
    return 0;
}