刷题笔记:字符串拼接效率
假设当前要从栈中取字符拼接成字符串;
考虑到栈是倒序的,有两种拼接方式
一是直接先在结果串后面加上字符,随后调用反转函数,即可得到正确顺序的字符串
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(); }
表面上这两种方法结果是相同的,但是背后原理不同,导致运行效率也不同。(背后原理具体是什么,本人还不清楚,也没查到,暂时留下疑问,以后学到再补充)
第二种方式每次都要将结果串调用出来,当结果串很长时,效率就很低。
所以还是建议采用第一种方式。

浙公网安备 33010602011771号