📘北尘_:个人主页
🌎个人专栏:《Linux操作系统》《经典算法试题 》《C++》 《数据结构与算法》
☀️走在路上,不忘来时的初心
文章目录
- 一、字符串相加
-
- 二、仅仅反转字母
-
- 三、字符串中第一个唯一字符
-
- 四、字符串最后一个单词的长度
-
- 五、验证回文串
-
一、字符串相加
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;}
};