文章

3

粉丝

0

获赞

7

访问

242

头像
删除字符串2 题解:借助string库函数
P1027 贵州大学机试题
发布于2026年1月27日 10:44
阅读数 48

std::string 提供了 substr()函数专门用于截取子串,类似于python的字符切片

erase() 删除指定位置的字符或子字符串。 str.erase(pos, length);

 

代码如下:

#include <bits/stdc++.h>
using namespace std;

int main() {
    string S;
    cin >> S;
    int len = S.length();
    vector<int> pos;
    for(int i = 0; i < len - 2; i++)
    {
        if(S.substr(i, 3) == "gzu" || S.substr(i, 3) == "Gzu"   // 列举出所有情况
        || S.substr(i, 3) == "gZu" || S.substr(i, 3) == "gzU" 
        || S.substr(i, 3) == "GZu" || S.substr(i, 3) == "GzU" 
        || S.substr(i, 3) == "gZU" || S.substr(i, 3) == "GZU")
        {
            pos.push_back(i);   // 记录所有待删除字串在母串中的位置
        }
    }
    for(size_t j = 0; j < pos.size(); j++)
    {
        S.erase(pos[j] - j*3, 3);   // 删除位置应该随母串变短而动态变化
    }
    cout << S;
    return 0;
}

 

登录查看完整内容


登录后发布评论

暂无评论,来抢沙发