题解 | #左旋转字符串#

左旋转字符串

https://www.nowcoder.com/practice/12d959b108cb42b1ab72cef4d36af5ec

class Solution {
public:
    string LeftRotateString(string str, int n) {
        // write code here
        if (str.empty()) return "";//字符串为空,直接放回 ""
        int m = str.size();
        int val = n % m;// 求余,算一下最后一个周期,需要移动几位
        string tmp_1(str.begin(), str.begin()+val);
        string tmp_2(str.begin()+val, str.end());
        //cout << tmp_1 << " " << tmp_2;
        return tmp_2+tmp_1;//把移动后结果拼接返回
    }
};

挤挤刷刷! 文章被收录于专栏

记录coding过程

全部评论

相关推荐

思念SiN:你这里没有通过的主要原因应该是计算平均分数的时候,在你贴的代码的第23行: ```c b[i]=(sum-max-min)/(m-2); ``` 等式的右边实际上是两个`int`类型的变量在做除法,C语言里面得到的结果会是这个除法的整数部分,余数部分被舍弃了,也不会自动变成浮点数去做除法。所以虽然你使用了`b[i]`这个浮点数去接收结果,但是等式右边除法是先得到了一个整数,然后再被转换为浮点数再赋值给了`b[i]`。你可以按下面这样,在做除法之前,先进行类型转换,就能得到期望的结果: ```c b[i]=(float)(sum-max-min)/(float)(m-2); ```
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务