剑指 Offer 05. 替换空格
class Solution {
public:
string replaceSpace(string s) {
string ss;
for(int i=0;i<s.size();i++){
if(s[i]!=' '){
ss+=s[i];
}else{
ss+="%20";
}
}
return ss;
}
};
剑指 Offer 58 - II. 左旋转字符串
class Solution {
public:
string reverseLeftWords(string s, int n) {
string ss;
for(int i=n;i<s.size();i++){
ss+=s[i];
}
for(int i=0;i<n;i++){
ss+=s[i];
}
return ss;
}
};
剑指 Offer 20. 表示数值的字符串
class Solution {
public:
bool isNumber(string s) {
int i=0;
while(i<s.size()&&s[i]==' ') i++;
s=s.substr(i);
while(s.back()==' ') s.pop_back();
bool numflag=false;
bool dotflag=false;
bool eflag=false;
for(int i=0;i<s.size();i++){
if(isdigit(s[i])) numflag=true;
else if(s[i]=='.'&&!dotflag&&!eflag){
dotflag=true;
}
else if((s[i]=='e'||s[i]=='E')&&!eflag&&numflag){
eflag=true;
numflag=false;
}
else if((s[i]=='+'||s[i]=='-')&&(i==0||s[i-1]=='e'||s[i-1]=='E')){
}
else{
return false;
}
}
return numflag;
}
};
剑指 Offer 67. 把字符串转换成整数
class Solution {
public:
int strToInt(string str) {
if(str.empty()) return 0;
int index=0,n=str.size(),sign=1,res=0;
while(index<n&&str[index]==' '){
++index;
}
if(index<n&&(str[index]=='+'||str[index]=='-')){
sign=str[index++]=='+'?1:-1;
}
while(index<n&&isdigit(str[index])){
int digit=str[index]-'0';
if(res>(INT_MAX-digit)/10){
return sign==1?INT_MAX:INT_MIN;
}
res=res*10+digit;
++index;
}
return res*sign;
}
};