算法---字符串

一、算法说明

字符串是一种类型,他不是一种算法,所以我们在处理这方面的问题的时候,需要结合其他的算法

二、题目

最长公共前缀

1、题目

最长公共前缀

2、解题思路

解法一:我们可以先让两个相互比较,然后在将比较出来的公共前缀和下一个作比较

解法二:我们可以一次性比较所有的

3、代码实现

 

class Solution 
{
public:string longestCommonPrefix(vector<string>& strs){string r = strs[0];for(int i = 1; i<strs.size(); i++){r = FindCommmon(r,strs[i]);}return r;}string FindCommmon(string& r, string& x){int i = 0;while(i < min(r.size(), x.size())&&r[i]==x[i]){i++;}return r.substr(0,i);}
};

最长回文子串

 最长回文子串

(1)题目

(2)解题思路

中心扩展法:我们可以定义一个位子i,然后使用双指针,判断以i为中心的两侧是否相等,分为两种情况,一种是偶数对称即示例2,这是我们双指针的位置分别在 i,和i+1,如果是奇数对称,双指针的位置都在i

(3)代码实现

class Solution
{
public:string longestPalindrome(string s) {int begin = 0, len = 0;for (int i = 0; i < s.size(); i++) {int left = i;int right = i;while (left >=0 && right < s.size() && s[right] == s[left]){left--;right++;}if (right - left - 1 > len) {begin = left + 1;len = right - left - 1;}left = i ; right = i + 1;while (left >=0 && right < s.size() && s[right] == s[left]){left--;right++;}if (right - left - 1 > len) {begin = left + 1;len = right - left - 1;}}return s.substr(begin, len);}
};

字符串相乘

字符串相乘

 (1)题目

(2)解题思路

解题思路一:

1、模拟字符串

添加一个字符串,上面的字符串挨个乘以下面的字符串里面的数字,得到结果后相加

 2、高位相乘的时候,要补上0

   我们可以先将字符串逆序,然后我们会发现下标为几,就在前面加上几个‘0’

3、逆序

等到结果后先全部相加在逆序

4、处理前导’0‘

如果我们乘以的是一个字符'0'只需要保存一个’0‘

解题思路二 :

(3)代码实现

class Solution 
{
public:string multiply(string num1, string num2) {string ret;if(num1 == "0" || num2 == "0")return "0";reverse(num1.begin(),num1.end());reverse(num2.begin(),num2.end());for(int i = 0 ; i < num1.size(); i++){string tmp;int k = i;while(k--){tmp.push_back('0');} int add = 0;for(int j = 0 ; j < num2.size() ; j++){int re = ((num1[i] - '0')*(num2[j] - '0') + add) ;add = re/10;char s = re%10 + '0';tmp.push_back(s);}if(add!=0){tmp.push_back(add+'0');}ret =  Addstring(tmp , ret);} reverse(ret.begin(),ret.end());return ret;}string Addstring(string s1, string s2){int i = 0, j = 0, add = 0;string ans;while (i < s1.size() || j < s2.size() || add > 0) {int sum = add;if (i < s1.size())sum += s1[i++] - '0';if (j < s2.size())sum += s2[j++] - '0';ans.push_back((sum % 10) + '0');add = sum / 10;}return ans;}
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/97271.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/97271.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙Next导航与路由指南:组件导航与页面路由的完美协作

一次搞懂HarmonyOS NEXT中的两种导航方式&#xff0c;打造流畅的应用内跳转体验在鸿蒙应用开发中&#xff0c;流畅的页面导航和路由是提升用户体验的关键。HarmonyOS NEXT提供了组件导航&#xff08;Navigation&#xff09; 和页面路由&#xff08;ohos.router&#xff09; 两种…

JavaScript原型详解——面试重点

一、原型的含义&#xff1a;JavaScript 中的“原型”既指 函数身上的 prototype 对象&#xff0c;也指 对象身上的 [[Prototype]] 隐藏链接&#xff1b;它俩共同构成了“原型链”&#xff0c;决定了“找不到属性时去哪里继续找”的规则。&#xff08;1&#xff09;原型对象(pro…

Vue3 全面介绍

Vue3&#xff08;正式名称为 Vue.js 3&#xff09;是 Vue.js 前端框架的第三个主要版本&#xff0c;于 2020 年 9 月正式发布。作为对 Vue2 的重大升级&#xff0c;Vue3 在核心架构、性能优化、开发体验等方面进行了全面重构&#xff0c;同时保持了 Vue 一贯的“渐进式框架”理…

HTTP 范围请求:为什么你的下载可以“断点续传”?

在现代网络应用中&#xff0c;我们习以为常的功能&#xff0c;如断点续传、多线程下载和在线视频快进快退&#xff0c;都依赖于 HTTP 协议中的一个强大特性&#xff1a;范围请求&#xff08;Range Requests&#xff09;。这项技术让客户端能够聪明地只请求文件的一部分&#xf…

万博智云联合华为云共建高度自动化的云容灾基线解决方案

一、摘要 近日&#xff0c;万博智云与华为云的深入合作再添新章——万博智云HyperBDR云容灾解决方案&#xff0c;顺利通过华为云专家团队评审和认证&#xff0c;正式被选为华为云基线解决方案&#xff08;Baseline Solution&#xff09;&#xff0c;并在华为云国际站上线。 Hy…

机器视觉opencv教程(二):二值化、自适应二值化

文章目录机器视觉opencv教程&#xff08;二&#xff09;&#xff1a;二值化、自适应二值化一、二值化图基础概念二、传统二值化方法&#xff08;基于全局固定阈值&#xff09;1. 阈值法&#xff08;THRESH_BINARY&#xff09;2. 反阈值法&#xff08;THRESH_BINARY_INV&#xf…

leetcode 461 汉明距离

一、问题描述二、解题思路采用位运算的思想来解决这个问题&#xff0c;首先&#xff0c;将x和y进行异或&#xff0c;x和y对应二进制位不同就会得到1&#xff0c;然后统计所有1的个数&#xff0c;即为汉明距离。三、代码实现时间复杂度&#xff1a;T(n)O(n)空间复杂度&#xff1…

ClickHouse 客户端

ClickHouse 客户端 ClickHouse提供两种客户端接口&#xff0c;分别基于 HTTP 和 TCP 协议 基于 HTTP 协议 主要用来支持轻量级的简单操作&#xff0c;方便跨平台和编程语言。 测试clickhouse联通性&#xff1a; $ curl http://localhost:8123/ Ok.在运行状况检查脚本中使用…

DBeaver 连接 PostgreSQL 教程

&#x1f6e0;️ DBeaver 连接 PostgreSQL 教程1️⃣ 安装 DBeaver打开官网&#xff1a;https://dbeaver.io/download/下载 Community Edition&#xff08;免费版&#xff09;&#xff0c;选择对应系统&#xff08;Windows / macOS / Linux&#xff09;。安装完成后&#xff0c…

Komo Searc-AI驱动的搜索引擎

本文转载自&#xff1a;Komo Searc-AI驱动的搜索引擎 - Hello123工具导航 ** 一、&#x1f50d; Komo Search 是什么&#xff1f; Komo Search 是一款基于人工智能技术的新一代交互式搜索引擎&#xff0c;它彻底改变了我们获取信息的方式 —— 从被动检索变成主动对话。不同于…

HTML 和 JavaScript 关联的基础教程

HTML 和 JavaScript 是构建现代网页的核心技术。HTML 负责页面结构&#xff0c;JavaScript 负责动态交互。以下是两者的基本关联方式。内联方式&#xff1a;直接在 HTML 中嵌入 JavaScript在 HTML 文件中&#xff0c;可以通过 <script> 标签直接编写 JavaScript 代码。这…

淘宝四个月造了一个超越美团的“美团”

本周三&#xff0c;美团发布最新一季财报&#xff0c;利润承压导致股价爆跌。只隔一天&#xff0c;阿里也发布了最新季报&#xff0c;最大的亮点是“淘宝闪购”即时零售业务&#xff0c;日均订单量站稳8000万单&#xff0c;峰值订单更是达到了1.2亿单。8000万单这个数字令市场眼…

Java开发MongoDB常见面试题及答案

基础概念题1. 什么是MongoDB&#xff1f;它的主要特点是什么&#xff1f;答案&#xff1a; MongoDB是一个开源的NoSQL文档型数据库&#xff0c;主要特点包括&#xff1a;文档存储&#xff1a;使用BSON格式存储数据&#xff0c;类似JSON结构无Schema约束&#xff1a;灵活的数据结…

AI视频生成工具全景对比:元宝AI、即梦AI、清影AI和Vidu AI

AI视频生成技术正以前所未有的速度发展&#xff0c;成为内容创作领域的重要革新力量。本文将全面对比四款主流AI视频生成工具&#xff1a;元宝AI、即梦AI、清影AI生视频和Vidu AI&#xff0c;从公司背景、技术路线、产品特点、发展历程和市场定位等多个维度进行深入分析。一、基…

2026届大数据毕业设计选题推荐-基于Python的出行路线规划与推荐系统 爬虫数据可视化分析

&#x1f525;作者&#xff1a;it毕设实战小研&#x1f525; &#x1f496;简介&#xff1a;java、微信小程序、安卓&#xff1b;定制开发&#xff0c;远程调试 代码讲解&#xff0c;文档指导&#xff0c;ppt制作&#x1f496; 精彩专栏推荐订阅&#xff1a;在下方专栏&#x1…

基于SpringBoot的高校科研项目管理系统【2026最新】

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;…

【开题答辩全过程】以 在线考试系统为例,包含答辩的问题和答案

个人简介一名14年经验的资深毕设内行人&#xff0c;语言擅长Java、php、微信小程序、Python、Golang、安卓Android等开发项目包括大数据、深度学习、网站、小程序、安卓、算法。平常会做一些项目定制化开发、代码讲解、答辩教学、文档编写、也懂一些降重方面的技巧。感谢大家的…

Marin说PCB之POC电路layout设计仿真案例---11

上节文章中大家不知道发现没有我们RX0_96712_FAKRA_3--TDR结果显示芯片端口阻抗还是偏低一些&#xff0c;但是这个该如何去改善优化设计呢&#xff1f;因为目前的PCB设计上&#xff0c;RX0_96712_FAKRA_3这个信号在芯片焊盘处是已经做了隔层参考的优化处理了&#xff1a;RX0_96…

【踩坑】修复 clear 报错 terminals database is inaccessible

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ 主要原因&#xff1a;Anaconda3 路径中的 clear 命令干扰了系统中的 clear 命令。 可能操作&#xff1a;你可能在安装后将 anaconda 目录移动了&#…

重学JS-005 --- JavaScript算法与数据结构(五)回顾 DOM 操作

文章目录style.displayinnerText学到的代码写法小总结style.display 使用元素的 style.display 属性&#xff0c;将属性的值设置为 “block” 或 “none”&#xff0c;可以显示或隐藏元素。 resetGameBtn.style.display block; optionsContainer.style.display none;innerT…