算法—字符串操作

 

394. 字符串解码 - 力扣(LeetCode)

class Solution {
public:string longestCommonPrefix(vector<string>& strs) {  string ret=strs[0];//***1***记得先要初始化ret,作为第一个比较值for(int i=0;i<strs.size();i++){ret=foundcommon(ret,strs[i]);        }return ret;}string foundcommon(string str1,string str2){int len_min=min(str1.size(),str1.size());int i=0;for(i=0;i<len_min;i++){if(str1[i]!=str2[i]) break;}return str1.substr(0,i);}
};

. - 力扣(LeetCode)

class Solution {
public:string longestPalindrome(string s) {//枚举所有子串O(n^2),回文子串的特点,中心轴对称,int begin=0; int end=0; int n=s.size();int len=0;for(int i=0;i<n;i++){int left=i; int right=i;while(left>=0&&right<n&&s[left]==s[right]){left--;right++;}if(right-left+1>len){len=right-left+1;begin=left;end=right;}}for(int i=0;i<n;i++){int left=i; int right=i+1;while(left>=0&&right<n&&s[left]==s[right]){left--;right++;}if(right-left+1>len){len=right-left+1;begin=left;end=right;}}return s.substr(begin,len);}
};

https://leetcode.cn/problems/add-binary/submissions/524491385/icon-default.png?t=N7T8https://leetcode.cn/problems/add-binary/submissions/524491385/

67. 二进制求和 - 力扣(LeetCode) 

class Solution {
public:string addBinary(string a, string b) {string ret;int cur1=a.size()-1;int cur2=b.size()-1;int t=0;//保留进位while(cur1>=0||cur2>=0||t){if(cur1>=0) t+=a[cur1--]-'0';if(cur2>=0) t+=b[cur2--]-'0';ret+=t%2+'0';//低位在left,需要反转t/=2;//进位}reverse(ret.begin(),ret.end());return ret;}};

43. 字符串相乘 - 力扣(LeetCode)

class Solution {
public:string multiply(string num1, string num2) {int m=num1.size();int n=num2.size();reverse(num1.begin(),num1.end());reverse(num2.begin(),num2.end());vector<int> tmp(m+n);//实际只用m+n-1个位数,也就是0~m+n-2,对于无进位相加。//先无进位相乘cout<<m<<"  "<<n<<endl;for(int i=0;i<m;i++){for(int j=0;j<n;j++){tmp[i+j]+=(num1[i]-'0')*(num2[j]-'0');//**1**+=不是=,这里是累加cout<<tmp[i+j]<<endl;}}for(int i=0;i<m+n-1;i++){cout<<tmp[i]<<endl;}//处理进位string ret;int t=0;int i=0;while(i<m+n-1||t){//**3**i<m+n-1:避免ret什么都不放,不用tmp[i]!=0:可能有问题,111,100;直接结束循环t+=tmp[i++];ret+=t%10+'0';t/=10;}//处理ret最后插入的0,因为是倒序,所以无法此0是前导0,不能统计while(ret.size()>1&&ret.back()=='0') ret.pop_back();//**2**size()=1时候,只有一位,此位为0,所以不为前导0.reverse(ret.begin(),ret.end());return ret;}
};

394. 字符串解码 - 力扣(LeetCode)

class Solution {
public:string decodeString(string s) {stack<int> nums;stack<string> st;st.push("");int i=0; int n=s.size();while(i<n){if('0'<=s[i]&&s[i]<='9'){int tmp=s[i++]-'0';cout<<"tmp:"<<tmp<<endl;cout<<s[i]<<endl;while('0'<=s[i]&&s[i]<='9') {tmp=tmp*10+s[i++]-'0';//***1**提取数组:不是+=,通过变换也不行,是=cout<<tmp<<endl;}nums.push(tmp);cout<<"nums栈顶"<<nums.top()<<endl;//cout<<"st栈顶"<<st.top()<<endl;}else if(s[i]=='['){cout<<"进入"<<endl;i++;//提取字母string str1="";cout<<s[i]<<endl;while('a'<=s[i]&&s[i]<='z'){//牢记提取一串子数组的话,判断条件两个必须分开写str1+=s[i++];cout<<str1<<endl;}// cout<<str1<<endl;st.push(str1);// cout<<"nums栈顶"<<nums.top()<<endl;cout<<"st栈顶"<<st.top()<<endl;}else if(s[i]==']'){//提取最内层的字符串int k=nums.top();nums.pop();string str1=st.top();st.pop();string str2="";while(k--){str2+=str1;}st.top()+=str2;i++;//cout<<"nums栈顶"<<nums.top()<<endl;// cout<<"st栈顶"<<st.top()<<endl;}else{while('a'<=s[i]&&s[i]<='z')  st.top()+=s[i++];// cout<<"nums栈顶"<<nums.top()<<endl;// cout<<"st栈顶"<<st.top()<<endl;}}return st.top();}
};

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

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

相关文章

鸿蒙? 车载?Flutter? React Native? 为什么我劝你三思,说点不一样的

本文首发于公众号“AntDream”&#xff0c;欢迎微信搜索“AntDream”或扫描文章底部二维码关注&#xff0c;和我一起每天进步一点点 引言 当今信息技术领域日新月异&#xff0c;各种新技术和新平台层出不穷。鸿蒙&#xff08;HarmonyOS&#xff09;、Flutter、以及车载应用开发…

使用 Scapy 库编写 ICMP 不可达攻击脚本

一、介绍 ICMP不可达攻击是一种利用ICMP&#xff08;Internet Control Message Protocol&#xff09;不可达消息来干扰或中断目标系统的网络通信的攻击类型。通过发送伪造的ICMP不可达消息&#xff0c;攻击者可以诱使目标系统认为某些网络路径或主机不可达&#xff0c;从而导致…

前端开发高频面试题

好的&#xff0c;以下是对您提出的问题的详细回答&#xff1a; 说说vue动态权限绑定渲染列表&#xff08;权限列表渲染&#xff09; Vue中动态权限绑定渲染列表通常涉及以下步骤&#xff1a; 首先&#xff0c;通过API请求从服务器获取当前用户的权限数据。在Vue组件中&#xff…

Linux: ubi rootfs 故障案例 (1)

文章目录 1. 前言2. ubi rootfs 故障现场3. 故障分析与解决4. 参考资料 1. 前言 限于作者能力水平&#xff0c;本文可能存在谬误&#xff0c;因此而给读者带来的损失&#xff0c;作者不做任何承诺。 2. ubi rootfs 故障现场 问题故障内核日志如下&#xff1a; Starting ker…

btstack协议栈实战篇--GAP Link Key Management

btstack协议栈---总目录-CSDN博客 目录 1.GAP 链接密钥逻辑 2.蓝牙逻辑 3.主应用程序设置 4.log信息 展示了如何遍历存储在 NVS 中的经典链接密钥&#xff0c;链接密钥是每个设备-设备绑定的。如果蓝牙控制器可以交换&#xff0c;例如在桌面系统上&#xff0c;则每个控制器都需…

App UI 风格,引领时尚

App UI 风格&#xff0c;引领时尚

R语言探索与分析18-基于时间序列的汇率预测

一、研究背景与意义 汇率是指两个国家之间的货币兑换比率&#xff0c;而且在国家与国家的经济交流有着举足轻重的作用。随着经济全球化的不断深入&#xff0c;在整个全球经济体中&#xff0c;汇率还是一个评估国家与国家之间的经济状况和发展水平的一个风向标。汇率的变动会对…

【前端】响应式布局笔记——媒体查询

一、媒体查询 为不同尺寸的屏幕设定不同的css样式&#xff08;常用于移动端&#xff09;。 案例1 <style>.content{width: 400px;height: 400px;border: 1px solid;}media screen and (min-device-width:200px) and (min-device-width:300px) {.content{background: r…

零基础入门学用Arduino 第二部分(一)

重要的内容写在前面&#xff1a; 该系列是以up主太极创客的零基础入门学用Arduino教程为基础制作的学习笔记。个人把这个教程学完之后&#xff0c;整体感觉是很好的&#xff0c;如果有条件的可以先学习一些相关课程&#xff0c;学起来会更加轻松&#xff0c;相关课程有数字电路…

构建智能汽车新质生产力丨美格智能亮相2024高通汽车技术与合作峰会

近日&#xff0c;以“我们一起&#xff0c;驭风前行”为主题的2024高通汽车技术与合作峰会在无锡国际会议中心隆重举行。作为高通公司的战略合作伙伴&#xff0c;美格智能受邀全程参与此次汽车技术与合作峰会。在峰会现场&#xff0c;美格智能产品团队隆重展示了多款基于高通平…

vscode中jupyter notebook执行bash命令,乱码解决方法

问题描述 使用vscode中使用jupyter notebook执行bash命令时,不管是中文还是英文,输出均是乱码 但是使用vscode的terminal执行同样的命令又没有问题,系统自带的cmd也没有问题。 最终解决后的效果如下: ## 问题分析 默认vscode会选择使用cmd执行shell, 但是通过vscode的设…

记一个ESP12-F芯片的坑

这两个都叫ESP-12F从外观上很难区分他们的差别&#xff0c;甚至背面的引脚都是一样的 这个单独的芯片就是从板子上拆下来的&#xff0c;使用这颗芯片按住FLASH按键LED灯会亮&#xff0c;很离谱&#xff0c;led灯的引脚是GPIO2 flash引脚是GPIO0&#xff0c;他们之间的内部封装…

PowerDesigner导入Excel模板生成数据表

PowerDesigner导入Excel模板生成数据表 1.准备好需要导入的Excel表结构数据,模板内容如下图所示 2.打开PowerDesigner,新建一个physical data model文件,填入文件名称,选择数据库类型 3.点击Tools|Execute Commands|Edit/Run Script菜单或按下快捷键Ctrl Shift X打开脚本窗口…

Day45 代码随想录打卡|二叉树篇---路径总和

题目&#xff08;leecode T112&#xff09;&#xff1a; 给你二叉树的根节点 root 和一个表示目标和的整数 targetSum 。判断该树中是否存在 根节点到叶子节点 的路径&#xff0c;这条路径上所有节点值相加等于目标和 targetSum 。如果存在&#xff0c;返回 true &#xff1b;…

Redis-sentinel(哨兵模式)的搭建步骤及相关知识

1、什么是redis-sentinel&#xff0c;和redis主从复制相比&#xff0c;它具有什么优势 1.1、redis主从复制 Redis主从复制是一种用于数据冗余和可伸缩性的机制&#xff0c;它将一台Redis服务器的数据复制到其他Redis服务器。在这种模式下&#xff0c;数据会实时地从一个主节点…

Polar Web【中等】反序列化

Polar Web【中等】反序列化 Contents Polar Web【中等】反序列化思路&探索EXPPHP生成PayloadGET传递参数 运行&总结 思路&探索 一个经典的反序列化问题&#xff0c;本文采用PHP代码辅助生成序列字符串的方式生成 Payload 来进行手动渗透。 打开站点&#xff0c;分析…

SpringBoot整合SpringSecurit(二)通过token进行访问

在文章&#xff1a;SpringBoot整合SpringSecurit&#xff08;一&#xff09;实现ajax的登录、退出、权限校验-CSDN博客 里面&#xff0c;使用的session的方式进行保存用户信息的&#xff0c;这一篇文章就是使用token的方式。 在其上进行的改造&#xff0c;可以先看SpringBoot…

力扣每日一题 6/4

3067.在带权树网络中统计可连接服务器对数目[中等] 题目&#xff1a; 给你一棵无根带权树&#xff0c;树中总共有 n 个节点&#xff0c;分别表示 n 个服务器&#xff0c;服务器从 0 到 n - 1 编号。同时给你一个数组 edges &#xff0c;其中 edges[i] [ai, bi, weighti] 表示…

EKF在LiFePO4电池SOC估算中不好用?一问带你破解EKF应用难题

磷酸铁锂电池因为平台区的存在&#xff0c;导致使用戴维南模型EKF的方法时&#xff0c;无法准确进行SOC准确预估。所以最近搜索了大量关于磷酸铁锂电池SOC预估的论文、期刊&#xff0c;但我被海量忽略客观事实、仅为了毕业的硕士论文给震惊到了。很多论文为了掩饰平台区的存在&…

Spark的开发环境配置

1. 介绍 这里主要记录一下&#xff0c;我们常用的maven配置&#xff0c;方便后期开发配置环境&#xff0c;避免每次都从零开始配置工程。 2. 工程目录 3. pom的配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven…