首页 > 面试编程题,解题思路
头像
牛客539239817号
发布于 2020-07-28 10:00
+ 关注

面试编程题,解题思路

#include<string>
#include<iostream>
#include<map>
#include<vector>
using namespace std;
bool findret(string str,int start,vector<string> p,map<string,int> mp){
    if(start==str.size()) return true;
    bool flag=false;
    for(int i=start;i<str.size();i++){
        string path;
        if(mp.count(str.substr(i,i-start+1)) && findret(str,i+1,p,mp)){
            path=str.substr(i,i-start+1)+' '+path;
            flag=true;
        }
    }
    return flag;
}
int main(){
    string str="tencent";
    vector<string> dic={""};
    map<string,int> mp;
    vector<string> ret;
    for(string s:dic){
        if(!mp.count(s)){
            mp[s]=1;
        }
    }
    for(int i=0;i<str.size();i++){
        vector<string> p;
        if(mp.count(str.substr(0,i+1)) && findret(str,i+1,p,mp)){
            for(int i=0;i<p.size();i++){
                string path=str.substr(0,i+1)+' '+p[i];
                ret.push_back(path);
            }
        }
    }
    for(int i=0;i<ret.size()-1;i++){
        cout<<ret[i];
    }
    cout<<ret[ret.size()-1];
    return 0;
    
}


更多模拟面试

全部评论

(0) 回帖
加载中...
话题 回帖

相关热帖

近期热帖

近期精华帖

热门推荐