📘北尘_ :个人主页
🌎个人专栏 :《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 ; }
} ;