本文共 783 字,大约阅读时间需要 2 分钟。
class Solution {public: string LeftRotateString(string str, int n) { //判断非法情况:当字符串是空或者左旋的位数小于0时,都不满足合法性 if(str.empty()||n<0){ return ""; } //当n=0时,返回原字符串 if(0==n){ return str; } //先把需要组左旋的位数逆置[0,n-1]; reverse(str,0,n-1); //把除过左旋的位数逆置[n,length-1]; reverse(str,n,str.size()-1); //最后再整体逆置[0,length-1]; reverse(str,0,str.size()-1); return str; } void reverse(string &str,int left,int right){ while(left
补充右旋字符串:
逆序[0, length-n-1],得到ZYXcbadef
逆序[length-n, length-1],得到ZYXcbafed 逆序[0, length-1],得到defabcXYZ
转载地址:http://oqypi.baihongyu.com/