一流的龙岗网站建设/制作公司网站大概多少钱
目录
把字符串转换成整数
反转字符串
字符串中的第一个唯一字符
字符串最后一个单词的长度
找出字符串中第一个只出现一次的字符
字符串相加
字符串最后一个单词长度
字符串相乘
反转字符串3
反转字符串2
验证回文串
把字符串转换成整数
通过遍历字符串并逐位转换,处理空格、正负号和整数溢出的情况。最终返回转换后的整数。
class Solution {public:int StrToInt(string str) {const int len = str.length();if (len == 0) return 0;int i = 0;while (i < len && str[i] == ' ') {++i; // 排除开头的空格}if (i == len) return 0;if (!isdigit(str[i]) && str[i] != '+' && str[i] != '-') return 0;bool neg = str[i] == '-' ? true : false;i = isdigit(str[i]) ? i : i + 1;long long ans = 0L;while (i < len && isdigit(str[i])) {ans = ans * 10 + (str[i++] - '0');if (!neg && ans > INT_MAX) {ans = INT_MAX;break;}if (neg && ans > 1L + INT_MAX) {ans = 1L + INT_MAX;break;}}if (i != len) return 0; return !neg ? static_cast<int>(ans) : static_cast<int>(-ans);}
};
-
首先,定义了一个函数
StrToInt
,该函数接受一个字符串参数str
,表示要转换的字符串。 -
获取字符串的长度,并检查长度是否为0。如果长度为0,则返回0。
-
初始化变量
i
为0,用于遍历字符串。 -
使用
while
循环跳过字符串开头的空格,将i
向后移动。 -
检查
i
是否已经达到字符串的末尾,如果是,则返回0。 -
检查
str[i]
是否为数字、正号或负号。如果不是,则返回0。 -
根据
str[i]
的值,确定是否为负数,并将结果存储在布尔变量neg
中。 -
如果
str[i]
不是数字,则将i
向后移动一位。 -
初始化变量
ans
为0,用于存储转换后的整数。 -
进入循环,只要
i
小于字符串的长度且str[i]
是数字,就执行循环体。 -
在循环体内,将
ans
乘以10,并加上str[i]
减去字符 '0' 的结果,以将字符转换为数字。 -
检查转换后的整数是否超出了
INT_MAX
的范围。如果超出了,则将ans
设置为INT_MAX
或1L + INT_MAX
,具体取决于neg
的值。 -
将
i
向后移动一位。 -
循环结束后,检查
i
是否等于字符串的长度。如果不相等,则表示字符串中包含非数字字符,返回0。 -
根据
neg
的值,返回转换后的整数,使用static_cast<int>
进行类型转换。
反转字符串
class Solution {
public:void reverseString(vector<char>& s) {reverse(s.begin(),s.end());}
};
字符串中的第一个唯一字符
class Solution {
public:int firstUniqChar(string s) {int count[26]={0};for(auto ch:s){count[ch-'a']++;}for(int i=0;i<s.size();i++){if(count[s[i]-'a']==1)return i;}return -1;}
};
字符串最后一个单词的长度
#include <iostream>
using namespace std;int main() {string str;getline(cin,str);size_t pos=str.rfind(' ');if(pos!=string::npos){cout<<str.size()-pos-1<<endl;}else{cout<<str.size()<<endl;}
}
找出字符串中第一个只出现一次的字符
#include <iostream>
#include <string>
using namespace std;int main() {string a;cin>>a;int charCount[256]={0};for(auto e:a){++charCount[e];}int s=-1;for(auto e:a){if(charCount[e]==1){cout<<e;s=1;break;}}if(s==-1)cout<<s;
}
-
首先,定义了一个字符串变量
a
,用于接收用户的输入。 -
创建一个大小为256的整型数组
charCount
,用于记录每个字符在字符串中出现的次数。初始时,所有元素都被初始化为0。 -
使用
for
循环遍历字符串a
中的每个字符。 -
在循环中,将当前字符
e
对应的charCount
数组元素加1,以统计字符出现的次数。 -
初始化变量
s
为-1,用于标记是否找到了不重复的字符。 -
使用另一个
for
循环遍历字符串a
中的每个字符。 -
在循环中,检查当前字符
e
在charCount
数组中的值。如果值为1,表示该字符只出现了一次,即为第一个不重复的字符。 -
输出该字符,并将变量
s
设置为1,表示已找到不重复字符。 -
如果循环结束后
s
仍为-1,表示没有找到不重复的字符。 -
输出变量
s
的值,即-1。
字符串相加
class Solution {
public:string addStrings(string num1, string num2) {int end1=num1.size()-1;int end2=num2.size()-1;int next=0;string str;str.reserve(num1.size()>num2.size()?num1.size()+1:num2.size()+1);while(end1>=0||end2>=0){int val1=end1>=0?num1[end1]-'0':0;int val2=end2>=0?num2[end2]-'0':0;int ret =val1+val2+next;next=ret/10;ret=ret%10;str+='0'+ret;--end1,--end2;}if(next==1)str+='1';reverse(str.begin(),str.end());return str;}
};
-
首先,定义了一个函数
addStrings
,该函数接受两个字符串参数num1
和num2
,表示要相加的两个数字。 -
初始化变量
end1
和end2
分别为num1
和num2
的最后一个字符的索引。 -
初始化变量
next
为0,用于记录进位。 -
创建一个空字符串
str
,用于存储相加的结果。 -
根据两个字符串的长度,预先分配
str
的容量,以避免不必要的内存重新分配。 -
进入循环,只要
end1
或end2
中至少有一个大于等于0,就执行循环体。 -
在循环体内,首先获取
num1
和num2
当前索引位置的字符,并将其转换为对应的数字值。如果已经超出字符串的范围,则将其视为0。 -
将
val1
、val2
和next
相加,得到ret
,并更新next
为ret
除以10的商,更新ret
为ret
除以10的余数。 -
将
ret
转换为字符,并将其添加到str
的末尾。 -
更新
end1
和end2
,向前移动一位。 -
循环结束后,如果
next
为1,说明最高位有进位,将字符 '1' 添加到str
的末尾。 -
将
str
反转,得到正确的相加结果。 -
返回
str
字符串最后一个单词长度
首先介绍一下接下来会用到的读取字符串的函数getline.
getline
是 C++ 标准库中的一个函数,用于从输入流中读取一行字符串。它有以下几个特点:
-
读取一行字符串:
getline
函数会读取输入流中的一行字符串,直到遇到换行符('\n') 或者文件结束符(EOF)。它将读取的字符串存储到指定的变量中。 -
处理空格字符:与
cin
不同,getline
函数会将空格字符(包括空格、制表符等)视为普通字符,而不是作为分隔符。这意味着getline
可以读取包含空格的字符串,而不会在空格处停止读取。 -
保留换行符:
getline
函数会将换行符('\n') 从输入流中读取并存储在字符串中,即使它是一行的结尾。这与cin
不同,cin
会将换行符视为分隔符并从输入流中丢弃。 -
指定分隔符:除了默认的换行符作为分隔符外,
getline
函数还可以接受一个可选的分隔符参数,用于指定其他字符作为行的结束标志。例如,可以使用getline(cin, str, ',')
来读取以逗号分隔的字符串。
#include <iostream>
using namespace std;int main() {string str;getline(cin,str);size_t pos=str.rfind(' ');if(pos!=string::npos){cout<<str.size()-pos-1<<endl;}else{cout<<str.size()<<endl;}
}
字符串相乘
class Solution {
public:string multiply(string num1, string num2) {if(num1=="0"||num2=="0")return "0";int n1=num1.size(),n2=num2.size();string result(n1+n2,'0');for (int i = n1 - 1; i >= 0; i--) {for (int j = n2 - 1; j >= 0; j--) {int product = (num1[i] - '0') * (num2[j] - '0') + (result[i + j + 1] - '0');result[i + j + 1] = product % 10 + '0';result[i + j] += product / 10;}}size_t startpos = result.find_first_not_of("0");if (string::npos != startpos) {return result.substr(startpos);}return "0";}
};
反转字符串3
class Solution {
public:string reverseWords(string s) {int pos=s.find(' ');int start=0;while(pos!=string::npos){reverse(s.begin()+start,s.begin()+pos);start=pos+1;pos=s.find(' ',pos+1); }reverse(s.begin()+start,s.end());return s;}
};
反转字符串2
class Solution {
public:string reverseStr(string s, int k) {auto start = s.begin();while (start < s.end()) {if (start + k < s.end()) {reverse(start, start + k);} else {reverse(start, s.end());}start += 2 * k;}return s;}
};
验证回文串
class Solution {
public:bool isPalindrome(string s) {string judge;for(char c:s){if(isalnum(c))judge+=tolower(c);}int left=0;int right=judge.size()-1;while(left<right){if(judge[left]!=judge[right]){return false;}++left;--right;}return true;}
};
相关文章:

C++ stringOJ练习题
目录 把字符串转换成整数 反转字符串 字符串中的第一个唯一字符 字符串最后一个单词的长度 找出字符串中第一个只出现一次的字符 字符串相加 字符串最后一个单词长度 字符串相乘 反转字符串3 反转字符串2 验证回文串 把字符串转换成整数 通过遍历字符串并逐位转换…...

解决问题:ImportError: cannot import name ‘_update_worker_pids‘
在复现一些较早年份文献时,网络架构是较早的Pytorch模型,现阶段的高版本不兼容,所以就得安装比如低版本的torch0.4.0以解决问题。 目录 一、问题1.1 问题分析 二、解决办法2.1 Pytorch安装2.2 torchvision安装2.3 测试是否安装成功 三、总结…...

【面试总结】Java面试题目总结(一)
(以下仅为个人见解,如果有误,欢迎大家批评并指出错误,谢谢大家) 1.项目中的验证码功能是如何实现的? 第一步:在项目的pom.xml文件中导入 EasyCaptcha 的依赖; <dependency>…...

大白话数据中台,何为数据中台
文章目录 一、数据中台二、本质三、构建数据中台的几个方面四、总结 最近一直在研发Ai平台,忙碌非凡。 在之余,有小伙伴质疑数据中台其实就是一个web系统,无法就是添加一些业务逻辑的增删改查。 答曰: 回去好好把科普下什么是数…...

escapeshellarg参数绕过和注入的问题
escapeshellcmd escapeshellcmd(string $command): string command--要转义的命令。 escapeshellcmd() 对字符串中可能会欺骗 shell 命令执行任意命令的字符进行转义。 此函数保证用户输入的数据在传送到 exec() 或 system() 函数,或者 执行操作符 之前进行转义。 …...

CSS——标准流、浮动、Flex布局
1、标准流 标准流也叫文档流,指的是标签在页面中默认的排布规则,例如:块元素独占一行,行内元素可以一行显示多个。 2、浮动 作用:让块元素水平排列 属性名:float 属性值: left:…...

P21 类神经网络训练不起来怎么办- 自动调整学习率 Adapative learning rate
梯度大,学习率减小梯度小,学习率变大adam随时间变化 , decay / warm up 调整学习率方法一 adagrad 学习率除以 梯度的方差 方法二 RMSProp 目前最常用的: Adam: RMSProp Moment Learning rate schedule : decay/ warm up l…...

[Linformer]论文实现:Linformer: Self-Attention with Linear Complexity
文章目录 一、完整代码二、论文解读2.1 介绍2.2 Self-Attention is Low Rank2.3 模型架构2.4 结果 三、整体总结 论文:Linformer: Self-Attention with Linear Complexity 作者:Sinong Wang, Belinda Z. Li, Madian Khabsa, Han Fang, Hao Ma 时间&#…...

【Jeecg Boot 3 - 第二天】1.1、后端 docker-compose 部署 JEECGBOOT3
一、场景 二、实战 ▶ 2.1 修改配置文件 > 目的一:将 dev 变更为生产环境 prod > 目的二:方便spring项目调用docker同个network下的redis和mysql ▶ 2.2 编写dockerfile ▶ 2.3 编写docker-compose.yaml ▶ 2.4 打…...

Centos单用户模式修改root密码
在CentOS 7的单用户模式下,你可以按照以下步骤修改root用户密码: 启动CentOS 7并进入GRUB菜单。在启动时按下任意键进入GRUB菜单。 在GRUB菜单中,选择要启动的CentOS 7内核版本,并按下e键进行编辑。 找到以 ro 开头的行…...

[Unity]关于Unity接入Appsflyer并且打点支付
首先需要去官方下载Appsflyer的UnityPackage 链接在这afPackage 然后导入 导入完成 引入此段代码 using AppsFlyerSDK; using System.Collections; using System.Collections.Generic; using UnityEngine;public class AppflysManager : MonoBehaviour {public static App…...

AICore 带来了 Android 专属的 AI 能力,它要解决什么?采用什么架构思路?
前言 Google 最近发布的 Gemini 模型在全球引起了巨大反响,其在多模态领域的 Video demo 无比震撼。对于 Android 开发者而言,其中最振奋人心的消息莫过于 Gemini Nano 模型将内置到 Android 系统当中,并开放给开发者使用。 事实上…...

python学习1
大家好,这里是七七,今天开始又新开一个专栏,Python学习。这次思考了些许,准备用例子来学习,而不是只通过一大堆道理和书本来学习了。啊对,这次是从0开始学习,因此大佬不用看本文了,小…...

【SpringBoot】Spring Boot 单体应用升级 Spring Cloud 微服务
Spring Cloud 是在 Spring Boot 之上构建的一套微服务生态体系,包括服务发现、配置中心、限流降级、分布式事务、异步消息等,因此通过增加依赖、注解等简单的四步即可完成 Spring Boot 应用到 Spring Cloud 升级。 Spring Boot 应用升级为 Spring Cloud…...

el-tree搜索的使用
2023.12.11今天我学习了如何对el-tree进行搜索的功能,效果如下: 代码如下: 重点部分:给el-tree设置ref,通过监听roleName的变化过滤数据。 default-expand-all可以设置默认展开全部子节点。 check可以拿到当前节点的…...

Java使用Microsoft Entra微软 SSO 认证接入
1. Microsoft Entra Microsoft Entra ID 是基于云的标识和访问管理服务,可帮助员工访问外部资源。 示例资源包括 Microsoft 365、Azure 门户以及成千上万的其他 SaaS 应用程序。 Microsoft Entra ID 还可帮助他们访问你的企业 Intranet 上的应用等内部资源&#x…...

“华为杯”研究生数学建模竞赛2016年-【华为杯】A题:无人机在抢险救灾中的优化运用(附获奖论文及MATLAB代码实现)
目录 摘 要: 1. 问题重述 1.1. 问题背景 1.2. 需要解决的问题 1.2.1....

17--异常处理
1、异常概述 1.1 什么是异常 异常:指的是程序在执行过程中,出现的非正常情况,如果不处理最终会导致JVM的非正常停止。 异常指的并不是语法错误和逻辑错误。语法错了,编译不通过,不会产生字节码文件,根本运…...

数据结构 | c++编程实现求二叉树的叶节点的个数。(递归非递归)
目录 非递归 递归 非递归 #include<iostream> #include<stack> using namespace std; struct BTNode {int data;BTNode* left, * right;BTNode(int val) :data(val), left(NULL), right(NULL) {}}; //递归的方式求二叉树的叶子结点数 int countnode(BTNode* t) …...

python读取csv文件
在Python中,你可以使用pandas库来读取CSV文件。以下是一个基本的例子: import pandas as pd# 读取CSV文件data pd.read_csv(filename.csv)# 显示前几行数据print(data.head()) 这里,filename.csv应该被替换为你的CSV文件的实际路径和名称。…...

租一台服务器多少钱决定服务器的价格因素有哪些
租一台服务器多少钱决定服务器的价格因素有哪些 大家好我是艾西,服务器这个名词对于不从业网络行业的人们看说肯定还是比较陌生的。在21世纪这个时代发展迅速的年代服务器在现实生活中是不可缺少的一环,平时大家上网浏览自己想要查询的信息等都是需要服…...

深度学习(生成式模型)——ADM:Diffusion Models Beat GANs on Image Synthesis
文章目录 前言基础模型结构UNet结构Timestep Embedding关于为什么需要timestep embedding global attention layer 如何提升diffusion model生成图像的质量Classifier guidance实验结果 前言 在前几篇博文中,我们已经介绍了DDPM、DDIM、Classifier guidance等相关的…...

Ubuntu无法解析域名DNS指向127.0.0.53问题处理
用nslookup 域名.com返回127.0.0.53无法解析错误 error"Could not lookup srv records on xxx.com: lookup xxx.com on 127.0.0.53:53: no such host" #首次尝试编辑/etc/resolved.conf文件DNS为8.8.8.8 或1.1.1.1 发现reboot重启后又恢复到127.0.0.53的内容#再次尝…...

Intewell-Hyper I_V2.0.0_release版本正式发布
新型工业操作系统_Intewell-Hyper I_V2.0.0_release版本正式发布 软件发布版本信息 版本号:V2.0.0 版本发布类型:release正式版本 版本特点 1.建立Intewell-Hyper I基线版本 版本或修改说明 基于Intewell-Lin V2.3.0_release版本: 1.Devel…...

Mysql mybatis 语法示例
service package com.ruoyi.goods.service;import java.util.List; import com.ruoyi.goods.domain.GoodsProducts;/*** 商品Service接口* * author ruoyi* date 2023-08-27*/ public interface IGoodsProductsService {/*** 查询商品* * param ProductID 商品主键* return 商…...

第77讲:二进制方式搭建MySQL数据库5.7版本以及错误日志管理
二进制方式搭建MySQL数据库5.7版本 前面是使用的yum的方式安装的MySQL数据库,在企业生产环境中大多数都用二进制方式安装。 本次使用二进制方式搭建MySQL 5.7.36版本。 1.二进制安装MySQL5.7版本 1.1.下载MySQL5.7版本的二进制文件 [root@mysql ~]# wget https://downloads.…...

R语言,table()函数实现统计每个元素出现的频数+并将最终统计频数结果转换成dataframe数据框形式
在 R中,要统计dataframe数据框中每个元素出现的频数,可以使用table()函数。以下是一个示例: 目录 一、创建数据 二、统计第一列每个元素出现的频数 三、统计第二列每个元素出现的频数 四、将频数结果转换为数据框,并改列名 一…...

微信小程序uniapp记住密码
记住密码功能 在请求登录接口成功后,我们需要判断用户是否勾选记住密码,如果是,则将记住密码状态、账号信息存入本地。 下次登录时,获取本地的记住密码状态,如果为true则获取本地存储的账号信息,将信息回填…...

喜报!Coremail荣获2023信创“大比武”优秀生态融合奖
近期,2023信创“大比武”金融业务创新应用赛道(简称金融赛道)活动正式落下帷幕。经过赛程的层层考核,中泰证券股份有限公司(简称“中泰证券”)与Coremail联合组成的“中泰证券CACTER邮件安全保卫队”最终在…...

知识库SEO:提升网站内容质量与搜索引擎排名的策略
随着搜索引擎算法的不断更新和优化,单纯依靠关键词堆砌和外部链接的时代已经过去。现在的SEO(搜索引擎优化)已经转向了以提供高质量、有价值内容为核心的阶段。知识库SEO便是这个新阶段的重要策略之一。 | 一、知识库SEO的概念与意义 1.定义…...