热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

力扣696.467号问题:8月19日补充说明与解析

力扣696.计数二进制子串和467.独特子串的优美解法虽然被标记为简单题,但在实际解决过程中仍具有一定的挑战性。本文将对这两道题目进行详细的解析和补充说明,特别是8月19日的更新内容,帮助读者更好地理解其中的算法思路和实现方法。通过具体的代码示例和实例分析,我们将展示如何高效地解决这些问题,并探讨其背后的数学原理和优化技巧。

696.计数二进制子串


虽然说是简单题,但我想不出来,这题答案的解法真的很巧妙。

fe1067ae7ead44d4aeebd8c73fbfc9c7.png

 


class Solution {

public:

    int countBinarySubstrings(string s) {

        vectorcounts(s.size(),0);

        int count=1,ans=0;

        for(int i=0;i

            if(s[i+1]!='\0'&&s[i]==s[i+1]){

                count++;

            }

            if(s[i]!=s[i+1]||s[i+1]=='\0'){

                counts.push_back(count);

                count=1;

            }

        }

        for(int i=0;i

            ans+=min(counts[i],counts[i+1]);

        }

        return ans;

 

    }

};



467.环绕字符串中唯一的子字符串


这题我做不来,居然是动态规划,没想到。

5a454c9c8c1a4b9495ae4d12df52d475.png

 


class Solution {

public:

    int findSubstringInWraproundString(string p) {

        vectordp(26,0);

        int k=1;

    dp[p[0]-'a']=1;

        for(int i=1;i

            if((p[i]-p[i-1]+26)%26==1){

                k++;

k代表p每个中字母连续的串的长度。

            }

            else k=1;

            dp[p[i]-'a']=max(dp[p[i]-'a'],k);

如果有重复的连续字母的子串,取较长的那个。

        }

        return accumulate(dp.begin(),dp.end(),0);

    }

};



推荐阅读
  • 本文介绍了如何通过C#语言调用动态链接库(DLL)中的函数来实现IC卡的基本操作,包括初始化设备、设置密码模式、获取设备状态等,并详细展示了将TextBox中的数据写入IC卡的具体实现方法。 ... [详细]
  • 问题场景用Java进行web开发过程当中,当遇到很多很多个字段的实体时,最苦恼的莫过于编辑字段的查看和修改界面,发现2个页面存在很多重复信息,能不能写一遍?有没有轮子用都不如自己造。解决方式笔者根据自 ... [详细]
  • web页面报表js下载,web报表软件 ... [详细]
  • Java设计模式详解:解释器模式的应用与实现
    本文详细介绍了Java设计模式中的解释器模式,包括其定义、应用场景、优缺点以及具体的实现示例。通过音乐解释器的例子,帮助读者更好地理解和应用这一模式。 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • 题目描述:牛客网新员工Fish每天早上都会拿着一本英文杂志,在本子上写下一些句子。他的同事Cat对这些句子非常感兴趣,但发现这些句子的单词顺序被反转了。例如,“student. a am I”实际上是“I am a student.”。Cat请求你帮助他恢复这些句子的正常顺序。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 检查在所有可能的“?”替换中,给定的二进制字符串中是否出现子字符串“10”带 1 或 0 ... [详细]
  • 2022年7月20日:关键数据与市场动态分析
    2022年7月20日,本文对当日的关键数据和市场动态进行了深入分析。主要内容包括:1. 关键数据的解读与趋势分析;2. 市场动态的变化及其对投资策略的影响;3. 相关经济指标的评估。通过这些分析,帮助读者更好地理解当前市场环境,为决策提供参考。 ... [详细]
  • 如何使用 `org.eclipse.rdf4j.query.impl.MapBindingSet.getValue()` 方法及其代码示例详解 ... [详细]
  • 使用Maven JAR插件将单个或多个文件及其依赖项合并为一个可引用的JAR包
    本文介绍了如何利用Maven中的maven-assembly-plugin插件将单个或多个Java文件及其依赖项打包成一个可引用的JAR文件。首先,需要创建一个新的Maven项目,并将待打包的Java文件复制到该项目中。通过配置maven-assembly-plugin,可以实现将所有文件及其依赖项合并为一个独立的JAR包,方便在其他项目中引用和使用。此外,该方法还支持自定义装配描述符,以满足不同场景下的需求。 ... [详细]
  • http:blog.csdn.netzeo112140articledetails7675195使用TCPdump工具,抓TCP数据包。将数据包上传到PC,通过Wireshark查 ... [详细]
  • Spring 中策略模式的应用:Resource 接口详解
    本文探讨了在 Spring 框架中如何利用 Resource 接口实现资源访问策略。Resource 接口作为资源访问策略的抽象,通过多种实现类支持不同类型的资源访问。 ... [详细]
  • 本文详细解析了一种实用的函数,用于从URL中提取查询参数。该函数通过处理URL中的搜索部分,能够高效地获取并解析出所需的参数值,适用于各种Web开发场景。 ... [详细]
  • 本文探讨了使用JavaScript在不同页面间传递参数的技术方法。具体而言,从a.html页面跳转至b.html时,如何携带参数并使b.html替代当前页面显示,而非新开窗口。文中详细介绍了实现这一功能的代码及注释,帮助开发者更好地理解和应用该技术。 ... [详细]
author-avatar
雲痕影落_969
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有