首页 > 其他 > 详细

Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round) C. Remove Adjacent(字符串,贪心,枚举)

时间:2020-03-18 20:55:35      阅读:41      评论:0      收藏:0      [点我收藏+]

题意:

给你一个由小写字母组成的字符串,若串中两个相邻元素字典序中也相邻,移除较大字母,问最多能移除多少个字母。

思路:

从大到小依次枚举。

Tips:

注意下标的处理。

 

以小消大:

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;cin>>n;
    string s;cin>>s;
    int ans=0;
    for(char c=y;c>=a;c--){
        for(int i=0;i<s.size();i++){
            if(s[i]==c){
                while(i-1>=0&&s[i-1]==s[i]+1)
                    s.erase(i-1,1),--i,++ans;
                while(i+1<s.size()&&s[i+1]==s[i]+1)
                    s.erase(i+1,1),++ans;
            }
        }
    }
    cout<<ans;
    return 0;
}

 

以大寻小:

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n;cin>>n;
    string s;cin>>s;
    int ans=0;
    for(char c=z;c>=b;c--){
        for(int i=0;i<s.size();i++){
            while(i-1>=0&&s[i-1]==s[i]-1&&s[i]==c)
                s.erase(i,1),++ans;
            while(i+1<s.size()&&s[i+1]==s[i]-1&&s[i]==c)
                s.erase(i,1),--i,++ans;
        }
    }
    cout<<ans;
    return 0;
}

 

Codeforces Round #625 (Div. 2, based on Technocup 2020 Final Round) C. Remove Adjacent(字符串,贪心,枚举)

原文:https://www.cnblogs.com/Kanoon/p/12519905.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!