zoukankan      html  css  js  c++  java
  • 洛谷 pP2708 硬币翻转

    题目描述

    从前有很多个硬币摆在一行,有正面朝上的,也有背面朝上的。正面朝上的用1表示,背面朝上的用0表示。现在要求从这行的第一个硬币开始,将前若干个硬币一起翻面,问如果要将所有硬币翻到正面朝上,最少要进行这样的操作多少次?

    输入格式

    一个字符串,由0和1组成,表示硬币状态

    输出格式

    一个数,表示要翻转的最少次数

    输入输出样例

    输入 #1
    10
    输出 #1
    2

    说明/提示

    样例1说明:

    第1次翻转:把第一个硬币翻到反面,字符串为00

    第2次翻转:把第一、二个硬币一起翻到正面,字符串为11,翻转完成,输出2

    硬币个数<=10000

    代码

    #include<bits/stdc++.h>
    using namespace std;
    int main(){
     string a;
     int sum=0;
     cin>>a;
     a=a+'1';
     for(int i=1;i<a.size();i++){        //string的计数方法和数组一样,都是从0开始
      if(a[i]!=a[i-1])               //如果和下一个不同,就要反转,因为最后加了一个‘1’,所以肯定最后的时候全是1
      {
       sum++;
      }
     }
     
     cout<<sum;
     return 0;
    }

  • 相关阅读:
    android architecture
    java求解两个字符串之间的编辑距离
    URL和URI的区别
    java源码解析之qdox
    java中Random实现原理
    java中ThreadLocal入门
    java中多线程之Future入门
    java中类加载器入门
    java中正则表达式的group用法
    java反射调用main方法踩坑
  • 原文地址:https://www.cnblogs.com/QingyuYYYYY/p/11621559.html
Copyright © 2011-2022 走看看