题解 | #左旋转字符串#
左旋转字符串
http://www.nowcoder.com/practice/12d959b108cb42b1ab72cef4d36af5ec
class Solution { public: string LeftRotateString(string str, int n) { string ret=""; if(str.size()==0){ return ""; } else if(n>str.size()&&str.size()!=0){ int length=str.size(); length=n%length; for(int i=length;i<str.size();++i){ ret+=str[i]; } for(int i=0;i<length;++i){ ret+=str[i]; } } else{ for(int i=n;i<str.size();++i){ ret+=str[i]; } for(int i=0;i<n;++i){ ret+=str[i]; } } return ret; } };
(1)首先判断字符串的长度是否为0,为零的话输出""; if(str.size()==0){ return ""; } (2)接下来判断当字符串长度不为0且位移量n大于字符串的长度时,取位移量除字符串长度的余数, 令length=余数,利用for循环,将str[length]及后面的字符都按顺序赋给空字符串ret,然后再将 str[length]前面的字符串按顺序赋值给字符串ret. (3).当位移量n大于等于字符串长度时,将str[n]及后面的字符都按顺序赋给空字符串ret,然后再将 str[n]前面的字符串按顺序赋值给字符串ret. (4).最后返回ret.