344. Reverse a String
class Solution {
public :
void reverseString ( vector< char > & s) {
int left= 0 , right= s. size ( ) - 1 ;
while ( left< right) {
swap ( s[ left] , s[ right] ) ;
left++ ;
right-- ;
}
}
} ;
Sword Pointer Offer 05. Replace spaces
class Solution {
public :
string replaceSpace ( string s) {
int count= 0 ;
for ( char a: s) {
if ( a== ' ' ) {
count++ ;
}
}
int i= s. size ( ) - 1 ;
s. resize ( s. size ( ) + count* 2 ) ;
int j= s. size ( ) - 1 ;
for ( i, j; i>= 0 ; i-- ) {
if ( s[ i] == ' ' ) {
s[ j-- ] = '0' ;
s[ j-- ] = '2' ;
s[ j-- ] = '%' ;
} else {
s[ j-- ] = s[ i] ;
}
}
return s;
}
} ;
151. Flip words in a string
class Solution {
public :
string reverseWords ( string s) {
int k= 0 ;
for ( int i= 0 ; i< s. size ( ) ; ++ i) {
if ( s[ i] != ' ' ) {
if ( k!= 0 ) s[ k++ ] = ' ' ;
while ( i< s. size ( ) && s[ i] != ' ' ) {
s[ k++ ] = s[ i++ ] ;
}
}
}
s. resize ( k) ;
reverse ( s. begin ( ) , s. end ( ) ) ;
for ( int i= 0 , j= 0 ; i<= s. size ( ) ; i++ ) {
if ( s[ i] == ' ' || i== s. size ( ) ) {
reverse ( s. begin ( ) + j, s. begin ( ) + i) ;
j= i+ 1 ;
}
}
return s;
}
} ;
Sword Pointing to Offer58-II. Left Rotate String
class Solution {
public :
string reverseLeftWords ( string s, int n) {
reverse ( s. begin ( ) , s. begin ( ) + n) ;
reverse ( s. begin ( ) + n, s. end ( ) ) ;
reverse ( s. begin ( ) , s. end ( ) ) ;
return s;
}
} ;