求一个字符串的最小字典序列

#include <cstdio>
#include <string>

using namespace std;

string minString(string st) {
    string res = st;
    for (int i = 0; i < res.size() - 1 ; i++) {
      if (res[i] == '#') {
        if (res[i-1] == 'a' && (res[i+1] != 'b')) {
            res[i] = 'b';
        }
        if (res[i-1] == 'b' && res[i+1] != 'a') {
            res[i] = 'a';
        }
        if ((res[i-1] == 'a' && res[i+1] == 'b') || (res[i-1] == 'b' && res[i+1] == 'a')) {
            res[i] = 'c';
        }
        else {
            res[i] = 'a';
        }
      }
    }
  return res;
}


int main()
{
    string s = "my#cba####abc";
      string res = minString(s);
    for(auto& c : res)
    {
      printf("c=%c\n", c);
    }
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务