LeetCode Weekly Contest 155 3問目 - Smallest String With Swaps [1202]

Source

LeetCode Weekly Contest 155
問題文

問題概要

省略

解法

省略

cLayversion 20190921-1)のコード

C++に変換後のコードはこちら

#define main dummy_main
{}
#undef main

unionFind uf;

int vis[100000];
string str[100000];

class Solution {
public:
  string smallestStringWithSwaps(string s, vector<vector<int>>& pairs) {
    dummy_main();
    
    int i, j, N = s.size();
    unionFind uf;

    uf.walloc(N);
    uf.init(N);
    rep(i,pairs.size()) uf(pairs[i][0], pairs[i][1]);

    rep(i,N) vis[i] = 0;
    rep(i,N) str[i] = "";

    rep(i,N) str[uf(i)] += s[i];
    rep(i,N) if(str[i].size()) sort(str[i].begin(), str[i].end());

    rep(i,N){
      j = uf(i);
      s[i] = str[j][vis[j]++];
    }

    return s;
  }
};

Current time: 2024年03月29日23時12分59秒
Last modified: 2019年09月22日20時09分08秒 (by laycrs)
Tags: Competitive_Programming_Incomplete LeetCode
トップページに戻る

Logged in as: unknown user (not login)

ログイン: