LCR 157. 套餐内商品的排列顺序

张开发
2026/4/11 21:49:22 15 分钟阅读

分享文章

LCR 157. 套餐内商品的排列顺序
LCR 157. 套餐内商品的排列顺序某店铺将用于组成套餐的商品记作字符串goods其中goods[i]表示对应商品。请返回该套餐内所含商品的全部排列方式。返回结果无顺序要求但不能含有重复的元素。示例 1输入goods agew输出[aegw,aewg,agew,agwe,aweg,awge,eagw,eawg,egaw,egwa,ewag,ewga,gaew,gawe,geaw,gewa,gwae,gwea,waeg,wage,weag,wega,wgae,wgea]提示1 goods.length 8class Solution { public: vectorstring goodsOrder(string goods) { vectorstringq; string s; sort(goods.begin(),goods.end()); do{ for(int i0;igoods.size();i)sgoods[i]; q.push_back(s); s; }while(next_permutation(goods.begin(),goods.end())); return q; } };重点std::next_permutation按字典序生成下一个排列它要求输入的序列已经是字典序最小的排列即升序才能遍历所有排列。如果初始字符串不是升序例如cba那么next_permutation只会生成比cba大的排列实际上没有更大的

更多文章