首页 > 解决方案 > 如何在(从 n 长度打印每个第 r 个字符)字符串中使用 nPr?

问题描述

假设我们有一个字符串s="aeiou"。我想打印字符串中的每个唯一 rth 字符。我的意思是预期输出(当 r=2 时)- ae ai ao au ei eo eu io iu ou。我解决这个问题的方法是 -

string str="aeiou";
    set<string>st;
    for(int i=0;i<str.size();++i)
    {
        for(int j=0;j<str.size();++j)
        {
            if(i!=j)
            {
                string p="";
                p+=str[i];
                p+=str[j];
                sort(p.begin(),p.end());
                st.insert(p);
            }
        }
    }
    for(auto it=st.begin();it!=st.end();++it)
    {
        cout<<(*it)<<" ";
    }

这里的复杂度是O(n2)。我可以在O(n)或任何更好的方法中做到这一点吗?

标签: c++stringpermutation

解决方案


推荐阅读