オファー] [単語列の順序を逆に安全性を証明する;「私は学生です。」、「学生午前I.」に反転した後。単語の内部構造を変更することなく、位置を反転し、そのワード文

タイトル説明

書き込み機能、「私は学生です。」、とフリップの後、「学生。A私は」。単語の内部構造を変更することなく、位置を反転し、そのワード文

思考

ボディのための2つのアイデア、ずっと同じことがあります。
:考え
内部反転する1-ワード(結果:Iミリアンペア.tneduts A)
学生の結果午前I)の2-および全体的な反転の最初のステップの結果
思想II:
1-全く進歩がオン(結果:私はミリアンペアを.tneduts)
-2-内部ワード交換前と後の最初のステップの結果(結果学生午前I.)

コード

コードは、そのアイデアのコードです

class Solution {
public:
    string ReverseSentence(string str) {
        char* st = &str[0], * end = &str[0], * ptr = &str[0];
        while (*ptr++ != '\0') {
            if (*ptr == ' '  ||  *ptr == '\0') {
                end = ptr - 1;
                while (st < end) { //进行单词内部交换
                    swap(*st++, *end--);
                }
                st = end = ptr+1;
            }
        }
        st = &str[0];
        end = ptr - 2;
        while (st<end) {//进行整体的前后交换翻转
            swap(*st++, *end--);
        }
        return str;
    }
};
公開された57元の記事 ウォン称賛28 ビュー4110

おすすめ

転載: blog.csdn.net/weixin_41747893/article/details/104762279