小模拟:说几个在做题目中的一个小要点:
(1):分类讨论,注意边界,需要转化成string类型,用to_string()函数
(2):注意一个可能多了一个 /
。
(3):如何取出vector中最后一个元素,
(1)用erase函数,但是复杂度比较好,容易超时。注意一定要-1。不然超过的数组的范围
代码:res.erase(res.end()-1);
(2) 通过pop_back()函数,而且直接去移出元素的时间复杂度是最低的
代码: res.pop_back(); 注意的返回值是void直接去pop_back()即可
class Solution {
public:
string optimalDivision(vector<int>& nums) {
//字符串简单模拟
//我们希望用括号去括住更多的数字
int len=nums.size();
if(len==0) return "";
if(len==1) return to_string(nums[0]);
if(len==2) return to_string(nums[0])+'/'+to_string(nums[1]);
string res=to_string(nums[0])+"/(";
for(int i=1;i<len;i++) res+=(to_string(nums[i])+'/');
res.pop_back();//注意pop_back函数的返回值是void
//res.erase(res.end()-1);
//如果现在写成这样子,就是表示后面多了一个括号
res+=')';
return res;
}
};