string alpha("0abcdefghijklmnopqrstuvwxyz"); void trans(string s,int cur,int n,string ans) {     if (cur == n)     {         ans+= alpha[s[cur] - '0'];         cout << ans << " ";         return;     }     else     {                  ans+=alpha[s[cur] - '0'];         trans(s, cur + 1, n,ans);         ans.erase(ans.size() - 1);         if (cur + 1 <= n)         {             int tmp = (s[cur] - '0') * 10 + s[cur + 1] - '0';             if (tmp <= 26)             {                 ans+=alpha[tmp];                 if (cur + 1 == n)                 {                     cout <<ans<< " ";                     return;                 }                 trans(s, cur + 2, n,ans);             }         }     } } int main() {     string s;     while (cin >> s)     {         string ans;         trans(s, 0, s.size()-1,ans);     } } dfs就行了
点赞 4

相关推荐

牛客网
牛客网在线编程
牛客网题解
牛客企业服务