刷题笔记:字符串拼接效率

假设当前要从栈中取字符拼接成字符串;

考虑到栈是倒序的,有两种拼接方式

一是直接先在结果串后面加上字符,随后调用反转函数,即可得到正确顺序的字符串

        string result = "";
        while (!st.empty()) { // 将栈中元素放到result字符串汇总
            result += st.top();
            st.pop();
        }
        reverse (result.begin(), result.end()); // 此时字符串需要反转一下

二是每次在结果串前面加上字符,可直接得到准确顺序的字符串。

        string res="";
        while(!st.empty()){
            res=st.top()+res;
            st.pop();
        }

表面上这两种方法结果是相同的,但是背后原理不同,导致运行效率也不同。(背后原理具体是什么,本人还不清楚,也没查到,暂时留下疑问,以后学到再补充)

第二种方式每次都要将结果串调用出来,当结果串很长时,效率就很低。

所以还是建议采用第一种方式。

posted @ 2022-04-05 10:25  阿豆23  阅读(37)  评论(0)    收藏  举报