字符串——OJ题

在这里插入图片描述


📘北尘_:个人主页

🌎个人专栏:《Linux操作系统》《经典算法试题 》《C++》 《数据结构与算法》

☀️走在路上,不忘来时的初心

文章目录

  • 一、字符串相加
    • 1、题目讲解
    • 2、思路讲解
    • 3、代码实现
  • 二、仅仅反转字母
    • 1、题目讲解
    • 2、思路讲解
    • 3、代码实现
  • 三、字符串中第一个唯一字符
    • 1、题目讲解
    • 2、思路讲解
    • 3、代码实现
  • 四、字符串最后一个单词的长度
    • 1、题目讲解
    • 2、思路讲解
    • 3、代码实现
  • 五、验证回文串
    • 1、题目讲解
    • 2、思路讲解
    • 3、代码实现

一、字符串相加

1、题目讲解

在这里插入图片描述

2、思路讲解

在这里插入图片描述

3、代码实现

class Solution {
public:string addStrings(string num1, string num2) {int end1=num1.size()-1,end2=num2.size()-1;int next=0;string m;while(end1>=0 || end2>=0 ){int v1=0,v2=0;if(end1>=0)v1=num1[end1--]-'0';if(end2>=0)v2=num2[end2--]-'0';int ret=v1+v2+next;next=ret/10;ret%=10;m+=ret+'0';}if(next==1)m+='1';reverse(m.begin(),m.end());return m;   } 
};

二、仅仅反转字母

1、题目讲解

在这里插入图片描述

2、思路讲解

在这里插入图片描述

3、代码实现

class Solution {
public:bool letter(char ch){if(ch>='a' && ch<='z') return true;if(ch>='A' && ch<='Z') return true;else return false;} string reverseOnlyLetters(string s) {int end=s.size()-1,begin=0;while(begin<end){while(begin<end && !letter(s[end])){--end;}while(begin<end && !letter(s[begin])){++begin;}swap(s[begin++],s[end--]);}return s;}     
};

三、字符串中第一个唯一字符

1、题目讲解

在这里插入图片描述

2、思路讲解

在这里插入图片描述

3、代码实现

class Solution {
public:int firstUniqChar(string s) {int count[256]={0};int size=s.size();for(int i=0;i<size;i++){count[s[i]]++;}int n=-1;for(int i=0;i<size;i++){if(count[s[i]]==1) {n=i;break;}}return n;}
};

四、字符串最后一个单词的长度

1、题目讲解

在这里插入图片描述

2、思路讲解

在这里插入图片描述

3、代码实现

#include <iostream>
using namespace std;int main() 
{string s1;getline(cin,s1);int i=s1.rfind(' ');if(i!=string::npos)cout<<s1.size()-(i+1)<<endl;else cout<<s1.size();return 0;
}

五、验证回文串

1、题目讲解

在这里插入图片描述

2、思路讲解

在这里插入图片描述

3、代码实现

class Solution {
public:bool isPalindrome(string s) {int n=s.size();string s1;for(int i=0;i<n;i++){if(s[i]>='a' && s[i]<='z')s1+=s[i];else if(s[i]>='A' && s[i]<='Z')s1+=s[i]+32;else if(s[i]>='0' && s[i]<='9')s1+=s[i];  }int end=s1.size();for(int i=0;i<end/2;i++){if(s1[i]!=s1[end-i-1]){return false;}}return true;}
};

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

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

相关文章

Java报错-Non-terminating decimal expansion; no exact representable decimal result

1. 背景 在使用 BigDecimal 的 divide() 对两个数相除时&#xff0c;报了如题的错误。 public class Test {public static void main(String[] args) {BigDecimal b1 new BigDecimal(1);BigDecimal b2 new BigDecimal(3);System.out.println(b1.divide(b2)); // Sys…

最新AI绘画Midjourney绘画提示词Prompt教程

一、Midjourney绘画工具 SparkAi【无需魔法使用】&#xff1a; sparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的…

动态内存管理,malloc和calloc以及realloc函数用法

目录 一.malloc函数的介绍 malloc的用法 举个例子 注意点 浅谈数据结构里的动态分配空间 二.calloc函数的介绍 三.realloc函数的介绍 四.柔性数组的介绍 为什么有些时候动态内存函数头文件是malloc.h,有些时候却是stdlib.h 一.malloc函数的介绍 malloc其实就是动态开辟…

linux内核使用ppm图片开机

什么是ppm图片 PPM&#xff08;Portable Pixmap&#xff09;是一种用于存储图像的文件格式。PPM图像文件以二进制或ASCII文本形式存储&#xff0c;并且是一种简单的、可移植的图像格式。PPM格式最初由Jef Poskanzer于1986年创建&#xff0c;并经过了多次扩展和修改。 PPM图像…

Appium 图像识别技术 OpenCV

在我们做App自动化测试的时候&#xff0c;会发现很多场景下元素没有id、content-desc、text等等属性&#xff0c;并且有可能也会碰到由于开发采用的是自定义View&#xff0c;View中的元素也无法识别到&#xff0c;很多的自动化测试框架对此类场景束手无策。Appium在V1.9.0中有给…

【AI美图】第02期效果图,AI人工智能全自动绘画,美图欣赏

今天给大家献上一组最新提示词 参照图生成图像 依据参照图生成新的图像需要掌握一些技巧&#xff0c;以下是一些可能有用的技巧&#xff1a; 观察参照图&#xff1a;在开始生成新图像之前&#xff0c;仔细观察参照图是非常重要的。你需要了解图像的布局、颜色、线条、细节等…

基于SSM的图书馆预约座位系统的设计与实现(部署+源码+LW)

项目描述 临近学期结束&#xff0c;还是毕业设计&#xff0c;你还在做java程序网络编程&#xff0c;期末作业&#xff0c;老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于SSM的图书馆预约座位…

十六、YARN和MapReduce配置

1、部署前提 &#xff08;1&#xff09;配置前提 已经配置好Hadoop集群。 配置内容&#xff1a; &#xff08;2&#xff09;部署说明 &#xff08;3&#xff09;集群规划 2、修改配置文件 MapReduce &#xff08;1&#xff09;修改mapred-env.sh配置文件 export JAVA_HOM…

初识JVM底层知识,一文读懂JVM知识文集。

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

高并发如何实现单用户信息查询接口

高并发如何实现单用户信息查询接口 故事情节 产品&#xff1a;小李&#xff0c;有个单用户信息查询的功能&#xff0c;需要你实现一下小李&#xff1a;这还不简单&#xff0c;两分钟我给你实现两分钟过去…小李&#xff1a;欧克了&#xff0c;部署上线了运维&#xff1a;哪个…

【1】自动化测试环境配置(ARM服务器)

想要从事 or 了解自动化测试开发、装备开发的小伙伴&#xff0c;本专栏内容将从0到1学习如何针对ARM服务器产品进行自动化测试平台的搭建&#xff0c;包括&#xff1a;测试界面的实现&#xff08;GUI&#xff09;、测试项的功能实现&#xff08;压力测试、接口测试、版本更新&a…

Git使用rebase和merge区别

Git使用rebase和merge区别 模拟环境使用merge合并使用rebase 模拟环境 本地dev分支中DevTest增加addRole() 远程dev被同事提交增加了createResource() 使用merge合并 使用idea中merge解决冲突后, 推送远程dev后,日志图显示 使用rebase idea中使用功能rebase 解决冲突…