zoukankan      html  css  js  c++  java
  • 2019牛客多校训练第八场G.Gemstones(栈模拟)

     题目传送门

    题意:

    输入一段字符串,字符串中连续的三个相同的字符可以消去,消去后剩下的左右两段字符串拼接,求最多可消去次数。

    输入:ATCCCTTG   输出:2

    ATCCCTTG(消去CCC)——>ATTTG(消去TTT)——>AG   

    题解:

    签到题,用栈模拟即可。

    Code:

    用栈模拟:

     /*7ms*/
    1
    #include<bits/stdc++.h> 2 using namespace std; 3 const int M=1e5+5; 4 int main() 5 { 6 string str; 7 while(!(cin>>str).eof()){ 8 char a[M]={}; 9 int head=0,sum=0; 10 a[++head]=str[0]; 11 a[++head]=str[1]; 12 for(int i=2;i<str.size();i++) 13 { 14 a[++head]=str[i]; 15 if(a[head]==a[head-1]&&a[head]==a[head-2]) 16 head-=3,sum++; 17 } 18 cout<<sum<<endl; 19 } 20 return 0; 21 }

    直接string模拟:

     /*68ms*/
    1
    #include<bits/stdc++.h> 2 using namespace std; 3 int main() 4 { 5 string str; 6 cin>>str; 7 int len=str.length(),sum=0; 8 for(int i=0;i<str.length()&&str.length()>=3;i++){ 9 if(str[i]==str[i+1]&&str[i]==str[i+2]){ 10 sum++; 11 str.erase(str.begin()+i+2); 12 str.erase(str.begin()+i+1); 13 str.erase(str.begin()+i); 14 i=max(i-2,0); 15 i--; 16 } 17 } 18 cout<<sum<<endl; 19 return 0; 20 }
  • 相关阅读:
    MyCat清单
    Nginx整合Tomcat
    Nginx安装与配置
    Spring清单
    Shiro清单
    Dubbo清单
    MyBatis清单
    查询数据库的编码
    myBatis
    面试
  • 原文地址:https://www.cnblogs.com/HOLLAY/p/11332752.html
Copyright © 2011-2022 走看看