首页 > 其他分享 >翻硬币 【 字符串 | 思维 】

翻硬币 【 字符串 | 思维 】

时间:2023-02-14 16:32:24浏览次数:39  
标签:思维 硬币 int oooo Sample 字符串 include first


翻硬币

Description

小明正在玩一个“翻硬币”的游戏。

桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。

比如,可能情形是:**oo***oooo

如果同时翻转左边的两个硬币,则变为:oooo***oooo

现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?

我们约定:把翻动相邻的两个硬币叫做一步操作,那么要求:

Input

两行等长的字符串,分别表示初始状态和要达到的目标状态。每行的长度<1000

Output

一个整数,表示最小操作步数。

Sample Input 1 


********** o****o****


Sample Output 1


5


Sample Input 2 


*o**o***o*** *o***o**o***


Sample Output 2


1


题解:推了半天,翻转的次数就是相邻不同的差值。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <climits>
#include <iostream>
#include <cstdio>
#include <cstring>
#include <bits/stdc++.h>
#include <queue>
#include <algorithm>
#include <map>
#include <cstdlib>
using namespace std;
#define inf 0x3f3f3f3f
const int N = 1000005;
string s,t;

int main()
{
cin >> s >> t;
int len = s.size();
int first = -1;
int ans = 0;
for(int i = 0; i < len; i ++){
if(s[i] != t[i] && first == -1) {
first = i;
}
else if(s[i] != t[i]){
ans += i - first;
first = -1;
}
}
cout << ans <<endl;
return 0;
}

 

标签:思维,硬币,int,oooo,Sample,字符串,include,first
From: https://blog.51cto.com/u_15965659/6057232

相关文章

  • Jackson无法将LocalDateTime序列化成字符串的解决办法
     1.情景展示在web开发过程中,如果使用的是SpringBoot框架的话,我们通常使用在前后端数据交互的时候,我们通常会涉及到日期类型的转换。当我们需要将日期类型转换成字......
  • 3621、亲密字符串
    给你两个字符串s和goal,只要我们可以通过交换s中的两个字母得到与goal相等的结果,就返回true;否则返回false。交换字母的定义是:取两个下标i和j(下标从0开始)且......
  • php 字符串匹配相似度
    <?phpclassLCS{var$str1;var$str2;var$c=array();/*返回串一和串二的最长公共子序列*/functiongetLCS($str1,$str2,$len1=......
  • 3601、排列硬币
    你总共有n枚硬币,并计划将它们按阶梯状排列。对于一个由k行组成的阶梯,其第i行必须正好有i枚硬币。阶梯的最后一行可能是不完整的。给你一个数字n,计算并返回可形......
  • C/C++读入含有空格的字符串
    好久之前遇到gets()不准用的情况,所以稍稍参考了一下网上的方法,整理一下。 charst[maxn];strings;1、gets(st);2、scanf("%[^\n]",st);3、getline(cin,s);......
  • 基本类型和字符串的转换
    publicclassDemo01{publicstaticvoidmain(String[]args){//基本类型和字符串之间的转换//1.基本类型转换为字符串intnum1=15;......
  • awk多字符串分割用法示例
    多字符串分割用单引号,不要用“[]”,但多个直接仍然用竖号分隔,需要转义的也仍然用斜杠“\”,但注意需要两个斜杠“\”,因为斜杠本身也需要转义。示例:两个多字符串分割符,分别为......
  • java删除字符串最后一位
    Strings="1,2,3,4,5,6,7,8,";//目标:删除最后一个","s=s.substring(0,s.length()-1);System.out.println(s); ......
  • Python列表转换为逗号分隔的字符串(二)
    我们可以使用一个列表以一个通用名称存储不同的元素。字符串是字符的集合。在本教程中,我们将列表转换为逗号分隔的字符串。在Python中使用 join() 函数将列表转换为......
  • MySQL 替换和截取指定位置字符串
    1.情景展示返回服务器的身份证号需要进行加密:只保留前4位和后3位,中间使用*代替,如何实现? 2.场景分析需要用到的函数有:IFNULL(),IF(),LENGTH(),REPLACE(),SUBSTR()......