首页 > 其他分享 >每日打卡-32

每日打卡-32

时间:2023-05-26 18:34:24浏览次数:34  
标签:cnt ++ 32 每日 int num 字符串 打卡 平衡

一.问题描述

平衡字符串 中,'L' 和 'R' 字符的数量是相同的。

给你一个平衡字符串 s,请你将它分割成尽可能多的子字符串,并满足:

每个子字符串都是平衡字符串。
返回可以通过分割得到的平衡字符串的 最大数量 。

二.设计思路

这道题要求尽可能多的切割平衡字符串

我们通过观察例题以及推理可得,要想得到最多切割,切割处来的字符串必须为先 R后 L 或者先 L后 R 。绝对不能出现 L R 相互交错出现。
也就是说分割时,不能出现嵌套。
贪心策略: 不要有嵌套的平衡,只要达到平衡,就立即分割
故可以定义一个变量 cnt ,在遇到不同的字符时,向不同的方向变化,设 cnt 为 0 时达到平衡,分割数更新。
比如:
从左往右扫描字符串s,遇到 L , cnt + 1,遇到 R ,cnt - 1
当 cnt 为0时即,更新记录平衡字符串子串的变量 ++num

三.流程图

四.伪代码 

1

五.代码实现 

class Solution {
public:
    int balancedStringSplit(string s) {
        int len = s.size();
        int cnt = 0, num = 0;

        for (int i = 0; i < len; ++i)
        {
            // 遇到R,--cnt
            if (s[i] == 'R')
                --cnt;
            // 遇到L,++cnt
            else
                ++cnt;
			// 判断:如果cnt等于0,说明要切割
            if (cnt == 0)
                ++num;
        }

        return num;
    }
};

 

标签:cnt,++,32,每日,int,num,字符串,打卡,平衡
From: https://www.cnblogs.com/leapssisbird/p/17435540.html

相关文章

  • 每日打卡-33
    一.问题描述给你一个整数数组prices,其中prices[i]表示某支股票第i天的价格。在每一天,你可以决定是否购买和/或出售股票。你在任何时候最多只能持有一股股票。你也可以先购买,然后在同一天出售。返回你能获得的最大利润。二.设计思路其实你完全没有必要去想怎......
  • 2023.5.26编程一小时打卡
    一、问题描述:定义复数类MyComplex,主函数完成相关测试。MyComplex类结构说明:1、数据成员包括:私有数据成员:实部x(double)虚部y(double)。2、成员函数包括:无参构造函数MyComplex(void),其功能是将数据成员数部和虚部的值均设为0;有参构造函数MyComplex(doublevalue1,doublevalue2),其功能......
  • arduino esp32 ds18b20 实例代码
    #include<OneWire.h>#include<DallasTemperature.h>//引脚定义#defineONE_WIRE_BUS15//库引用实例OneWireoneWire(ONE_WIRE_BUS);DallasTemperaturesensors(&oneWire);voidsetup(void){Serial.begin(9600);sensors.begin();}voidloop(vo......
  • 每日一练 | 网络工程师软考真题 Day12
    阅读以下说明,答复以下【问题1】至【问题3】【说明】某单位有1个总部和6个分部,各个部门都有自己的局域网。该单位申请了6个C类IP地址202.115.10.0/24~202.115.15.0/24,其中总部与分部4共用一个C类地址。现方案将这些部门用路由器互联,网络拓扑结构如图1-1所示。【问题1】该网络采用R1~R......
  • 每日一练 | 网络工程师软考真题 Day13
    阅读以下说明,回答以下问题1至问题6。【说明】某公司的两个部门均采用Windows2003的NAT功能共享宽带连接访问Internet,其网络结构和相关参数如图2-1所示。ISP为该公司分配的公网IP地址段为202.117.12.32/29。【问题1】在Windows2003中, (1) 不能实现NAT功能。备选答案:A.终端效劳管......
  • 5.26打卡
      3.程序流程图4.代码实现 #include<bits/stdc++.h>usingnamespacestd;main(){inti,j,s,n;printf("请输入所选范围上限:");scanf("%d",&n);for(i=2;i<=1000;i++){s=0;for(j=1;j<=n/2;j++)......
  • PMBOK的132种工具
    一、数据收集技术,用于从各种渠道收集数据与信息,共有九种数据收集工具与技术。1.标杆对照:和别的比比。2.头脑风暴:一起想。3.核查表:比如全班学生的数理化成绩表,列为姓名,行为科目。4.核对单:Checklist。5.焦点小组:小组一起交流。6.访谈:一问一答。7.市场调查:各种渠道了解市场情况......
  • 打卡23
    #include<string>#include<iostream>usingnamespacestd;#definePI3.14159fclassShape{public: virtualvoidset()=0; virtualfloatgetarea()=0;};classCircle:publicShape{private: floatr;public: voidset() { cin>>......
  • 打卡36
      循环先判断指数是否为素数,再判断梅森数是否为素数。#include<bits/stdc++.h>usingnamespacestd;boolf(intx){ for(inti=2;i<=x/i;i++) { if(x%i==0)returnfalse; } returntrue;}intmain(){ for(inti=2;i<=20;i++) { if(f(i)) { ints=pow(2,i)-1; if(f(......
  • 继承/闭包打卡
    01继承1.继承引入-是类与类之间的关系子类继承父类子类就拥有父类的属性和方法【重点】2.es5:继承语法 1.call函数继承-构造函数继承(继承属性)在子类的构造函数中使用父类构造函数的call函数实现继承Person.call(this,name,age)//构造函数继承......