给定一个字符串和一个偏移量,根据偏移量旋转字符串(从左向右旋转)

对于字符串 “abcdefg”.
offset=0 => “abcdefg”
offset=1 => “gabcdef”
offset=2 => “fgabcde”
offset=3 => “efgabcd”

解题思路:从字符串的末尾移动偏移量个字符到字符串的开头
1.要考虑到字符串为空的状况!!!
2.考虑偏移量大于字符串长度

void rotateString(string &str, int offset) {
        // write your code here
        int str_nums=str.size();
        if(!str.empty()){
        int offset_size=offset%str_nums;
        string transform=str.substr(str_nums-offset_size,offset_size;
        str.erase(str_nums-offset_size,offset_size);
        str.insert(0,transform);
        }
    }

字符串使用知识点:
1.判断字符串是否为空
string str;
使用empty()函数:str.empty()
判断字符串长度为0:str.size()==0
与空串比较,如果相等则为空:str=””
2.提取字符串中指定的子字符串
substr()函数返回指定长度的子字符串:string temp=str.substr(start,length),start为子字符串在字符串中的位置,length为子字符串的长度
substring ()函数返回指定位置的子字符串:string temp=str.substring(strat.end)
start为子字符串开始位置,end为子字符串结束位置
3.删除字符串中指定长度的子字符串
str.erase(start,length):删除从start开始长度为length的子字符串
4.在字符串指定位置插入子字符串
insert(start,string):在start位置插入子字符串string

猜你喜欢

转载自blog.csdn.net/htt789/article/details/80031210