移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——5.string

1.字符串相乘

. - 力扣(LeetCode)

思路:

1.如果两个串有一个首元素为‘0’,则直接返回‘0’

2.设置两层循环,内层第一次循环 用于str插入初始数据

(num2 的各个元素和num1 的最后一个元素相乘的结果)

3.若存在内层第二次循环,则用num2 的各个元素和num1 的倒数第二个元素相乘

依次与str相应位置进行相加,若超出str.size(),则改用push_back进行尾插

4.最后进行reverse(str.begin(),str.end()) 倒置字符串

class Solution {
public:string multiply(string num1, string num2) {string str;int flag=0;int num=0;int begin1=0;int begin=0;if(num1[0]=='0'||num2[0]=='0'){ str='0';return str;}for(int i=num1.size()-1;i>=0;i--){  for(int j=num2.size()-1;j>=0;j--){if(i==num1.size()-1){num=(num1[i]-'0')*(num2[j]-'0')+flag;if(num>9)flag=num/10;elseflag=0;str.push_back(num%10+'0');if(j==0&&flag!=0){str.push_back(flag+'0');flag=0;}}else{num=(num1[i]-'0')*(num2[j]-'0')+flag;if(begin<=str.size()-1) num=num+str[begin]-'0';if(num>9)flag=num/10;elseflag=0;if(begin<=str.size()-1) str[begin]=num%10+'0';elsestr.push_back(num%10+'0');if(j==0&&flag!=0){str.push_back(flag+'0');flag=0;}begin++;}}begin1++;begin=begin1;}reverse(str.begin(),str.end());return str;}
};

2.反转字符串中的单词

. - 力扣(LeetCode)

 

思路:

1.使用迭代器string::iterator j= s.begin();取的首元素位置

2. for(;i<=s.size();i++)

如果 s[i]为‘ ’或i==s.size()

reverse(j,j+flag);    //左闭右开 !!!!!!!!!!!

j=j+flag+1;   //j跳过‘ ’

flag=0;

3.

 else

      flag++;

 

class Solution {
public:string reverseWords(string s) {int i=0;int flag=0;string::iterator j= s.begin();while(*j==' ')j++;for(;i<=s.size();i++){if(s[i]==' '||i==s.size()){ reverse(j,j+flag);    //左闭右开j=j+flag+1;//i++;flag=0;}elseflag++;}return s;}
};

3.字符串中第一个只出现一次的字符

. - 力扣(LeetCode) 

 

思路:

1.因为字符串中字符种类较少,可以借用计数排序的想法 

2. int arr[26]={0};//一共有26个字母

3.//范围for

for(auto ch :s)

  {

    arr[ch-'a']++;        //每出现一次该字符则在arr相应位置处++;

  }

4.

for(int i=0;i<s.size();i++)

 {

   if(arr[s[i]-'a']==1)

   {

    return i;                     //遍历s,若arr相应处为1,则为第一个出现一次的字符

   }

}

class Solution {
public:int firstUniqChar(string s) {int arr[26]={0};for(auto ch :s){arr[ch-'a']++;}for(int i=0;i<s.size();i++){if(arr[s[i]-'a']==1){return i;}}return -1;}
};

 4.把字符串转为整形

. - 力扣(LeetCode)

 

class Solution {
public:int myAtoi(string str) {int i = 0;
int flag = 1;
int flag2=0;
long long num = 0;          //pow(2,31)很大,必须用long long类型存储
while(str[i]==' ')i++;                    //跳过前面的‘ ’for (; i < str.size(); i++)
{if (str[i] != ' '){if (str[i] == '-'&&(str[i+1] >= '0' && str[i+1] <= '9')) //必须保证‘+’ 后必须是数字才能确定符号{if(flag2)      //flag2的作用是防止“1200-12”这种类型多次读取break;flag = 0;flag2=1;}else if (str[i] == '+'&&(str[i+1] >= '0' && str[i+1] <= '9'))//同理{if(flag2)break;flag = 1;flag2=1;}else if((str[i] < '0' || str[i] > '9'))    //如果为字符则直接终止循环break;               if (str[i] >= '0' && str[i] <= '9'){flag2=1;num = num * 10 + str[i] - '0';if(flag){if(num>pow(2,31)-1)    //判断是否越界{num=pow(2,31)-1;break;}}else{if(num>pow(2,31)){num=pow(2,31);    //判断是否越界break;}}}}elsebreak;}
if (flag)return num;
elsereturn -num;}
};

 5.反转字符串(错题反思)

. - 力扣(LeetCode)

官方答案:

class Solution {
public:string reverseStr(string s, int k) {int n = s.length();for (int i = 0; i < n; i += 2 * k) {reverse(s.begin() + i, s.begin() + min(i + k, n));}return s;}
};

 

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

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

相关文章

C代码做底层及Matlab_SimuLink做应用层设计单片机程序

前言:SimuLink工具极其强大,但是能直接支持单片机自主开发的很少,造成这个问题的原因主要是我们使用的芯片底层多是C代码工程,芯片厂家也只提供C代码库,很少能提供SimuLink的支持库,即使提供也不是很不完善,如NXP的一些芯片提供的SimuLink库不含盖高级应用,再比如意法半…

哈希表 - 快乐数

202. 快乐数 方法一&#xff1a;用哈希集合检测循环 /*** param {number} n* return {boolean}*/let getNext function(n) {return n.toString().split().map(i > i ** 2).reduce((a, b) > a b); }let isHappy function(n) {let seen new Set();while (n ! 1 &&…

什么是跨境电商独立站?为什么选择做独立站?

独立站在近两年被推上风口&#xff0c;很多人跟风涌入赛道&#xff0c;但并不知道做独立站的根本原因是什么&#xff1f;为什么跨境电商要做独立站&#xff1f; 今天分享这篇文章&#xff0c;希望能帮助正在建站或想要建站的朋友们建立起对独立站的基本认知&#xff0c;做到不踩…

【学习笔记】Matlab和python双语言的学习(图论最短路径)

文章目录 前言一、图论基本概念示例 二、代码实现----Matlab三、代码实现----python总结 前言 通过模型算法&#xff0c;熟练对Matlab和python的应用。 学习视频链接&#xff1a; https://www.bilibili.com/video/BV1EK41187QF?p36&vd_source67471d3a1b4f517b7a7964093e6…

Java线程模型

一、相关知识 用户级线程&#xff08;ULT&#xff09;&#xff1a;实现在用户空间的线程称为用户级线程。用户线程是完全建立在用户空间的线程库&#xff0c;用户线程的创建、调度、同步和销毁全由用户空间的库函数完成&#xff0c;不需要内核的参与&#xff0c;也不需要进行用…

FPGA之间数据传输的讨论:解析数据传输与同步技术

在现代电子工程领域&#xff0c;数据传输和同步技术是确保信息准确、高效传递的关键。FPGA间的高速数据传输是实现复杂系统功能的关键技术之一。本文将基于移知公开课《FPGA之间数据传输的讨论》的内容&#xff0c;探讨FPGA间数据传输的技术细节和面临的挑战&#xff0c;帮助读…

使用VS2022生成安装包

首先需要本地已经能够正常运行的软件包&#xff0c;包含可执行文件及必要的运行库等&#xff0c;如下所示RemoteCli.exe为最终的可执行文件 打开VS2022 &#xff0c;选择 扩展–>管理扩展–>联机&#xff0c;搜索Microsoft Visual Studio Installer Projects&#xff0c;…

Lua调用c#

1. 类 --lua中使用C#的类非常简单 --固定套路 --CS.命名空间.类名 --Unity的类 比如 GameObject Transform等等 —— CS.UnityEngine.类名 --CS.UnityEngine.GameObject--通过C#中的类 实例化一个对象 lua中没有new 所以我们直接 类名括号就是实例化对象 --默认调用的 相当于就…

智能分析/视频汇聚EasyCVR安防视频融合管理云平台技术优势分析

安防行业的发展历程主要围绕视频监控技术的不断改革升级&#xff0c;从最初的模拟监控到数字监控&#xff0c;再到高清化、网络化监控&#xff0c;直至现在的智能化监控&#xff0c;每一次变革都推动了行业的快速发展。特别是近年来&#xff0c;随着AI、大数据、物联网等技术的…

LVS负载均衡(twenty-six day)

一、LVS &#xff08;一&#xff09;什么是LVS linux virtural server的简称&#xff0c;也就是linxu虚拟机服务器&#xff0c;这是一个由章文岩博士发起的开源项目&#xff0c;官网是http://www.linuxvirtualserver.org,现在lvs已经是linux内核标准的-部分&#xff0c;使用lv…

学术周交流与学习节选

文章目录 1、粒度多模态运动分析1.1 免特征重建的终身行人重识别1.2 无样本保留的终身行人重识别1.3 粒度多模态运动之类增量学习1.4 粒度多模态之人体姿态估计扩散模型 2、深度伪造的被动取证与主动防御2.1 研究现状及主要方法2.2 基于梯度的伪影特征表示2.3 基于伪造自适应学…

SQL注入实例(sqli-labs/less-18)

0、初始页面 先使用brup爆破密码&#xff0c;账号admin&#xff0c;密码admin 1、确定闭合字符 判断注入点在post请求参数的User-agent处 闭合字符为单引号 2、爆库名 3、爆表名 4、爆列名 5、查询最终目标 在index.php中有这么一句 $insert"INSERT INTO security.uage…

haproxy算法与具体实现

一、负载均衡 1.什么是负载均衡 负载均衡&#xff1a;Load Balance&#xff0c;简称LB&#xff0c;是一种服务或基于硬件设备等实现的高可用反向代理技术&#xff0c;负载均 衡将特定的业务(web服务、网络流量等)分担给指定的一个或多个后端特定的服务器或设备&#xff0c;从…

『大模型笔记』人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF)

人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF) 文章目录 一. 人类反馈的强化学习(Reinforcement Learning from Human Feedback, RLHF)1. 概念解释2. RLHF的组成部分2.1. 强化学习(Reinforcement Learning, RL)2.2. 状态空间(state space)2.3. 动作空…

深入InnoDB核心:揭秘B+树在数据库索引中的高效应用

目录 一、索引页与数据行的紧密关联 &#xff08;一&#xff09;数据页的双向链表结构 &#xff08;二&#xff09;记录行的单向链表结构 二、未创建索引情况 &#xff08;一&#xff09;无索引下的单页查找过程 以主键为搜索条件 以非主键列为搜索条件 &#xff08;二…

ffmpeg 内存模型

最近在学习ffmpeg&#xff0c;阅读了一些packet和frame关于内存操作的api。在此长话短说&#xff0c;只说核心点。 ffmpeg模型 AVFrame 表示编码前的原始数据帧&#xff0c;AVPacket 表示编码后的压缩数据包。 问题&#xff1a; &#xff08;1&#xff09;从av_read_frame读…

算法打卡 Day20(二叉树)-找树左下角的值 + 路径总和 + 从中序与后序遍历序列构造二叉树

文章目录 Leetcode 513-找树左下角的值题目描述解题思路 Leetcode 112-路径总和题目描述解题思路相关题目Leetcode 113-路径总和 ii Leetcode 106-从中序与后序遍历序列构造二叉树题目描述解题思路类似题目Leetcode 105-从前序与中序遍历序列构造二叉树 Leetcode 513-找树左下角…

HSL模型和HSB模型,和懒人配色的Color Hunt

色彩不仅仅是视觉上的享受&#xff0c;它在数据可视化中也扮演着关键角色。通过合理运用色彩模型&#xff0c;我们可以使数据更具可读性和解释性。在这篇文章将探讨HSL&#xff08;Hue, Saturation, Lightness&#xff09;和HSB&#xff08;Hue, Saturation, Brightness&#x…

Java中的抽象类与接口

1. 抽象类 1.1 抽象类概念 在面向对象的概念中&#xff0c;所有的对象都是通过类来描绘的&#xff0c;但是反过来&#xff0c;并不是所有的类都是用来描绘对象的&#xff0c; 如果一个类中没有包含足够的信息来描绘一个具体的对象&#xff0c;这样的类就是抽象类。 比如&…

freeRTOS学习之ARM架构

分析了arm架构以及RISC指令集的部分内容&#xff0c;同时复习了计算机组成原理中函数的汇编指令流程&#xff0c;也就是CPU的工作流程&#xff0c;大有裨益&#xff01;