euler circuit ?
Difference between en3 and en4, changed 4 character(s)
https://cses.fi/problemset/task/1113↵
I was solving this problem from cses , I came up with an idea which is I can know the first ans last character of each string in the lexicographical sorted rotations which is.↵

The last characters is the input itself and the first characters is the sorted input↵

For example: (* represents an unknown character)↵

s = "cb#ab"↵

Then the lexicographical sorted rotations from the input are:↵

"****c"↵

"****b"↵

"****#"↵

"****a"↵

"****b"↵

And the sorted input is:↵

"#abbc"↵

So the first characters are:↵

"#****"↵

"a****"↵

"b****"↵

"b****"↵

"c****"↵

By combining i will have:↵

"#***c"↵

"a***b"↵

"b***#"↵

"b***a"↵

"c****b"↵

Basically I will construct a graph by adding a directed edge from first to last character of each string. The graph idea if x have a direct edge to y then y is before x in the answer string. So I can just find an Euler circuit which starts at '#' and ends at '#' and it will be the answer. But the problem with the idea is if there is a character which appears more than once. The logic may break because then you will have more than one choice to choose. But actually there should be a unique answer (all the choices are wrong except one but idk how to differentiate between them)↵

Any ideas to improve the answer or any other ideas to solve the problem ?↵

Thanks in advance :) 

History

 
 
 
 
Revisions
 
 
  Rev. Lang. By When Δ Comment
en8 English faresbasbas 2020-07-23 17:18:43 628
en7 English faresbasbas 2020-07-23 15:40:41 11
en6 English faresbasbas 2020-07-23 15:39:54 597
en5 English faresbasbas 2020-07-23 00:46:38 20 Tiny change: 'dvance :) ' -> 'dvance :) \n\nedit : solved :)'
en4 English faresbasbas 2020-07-22 00:04:38 4
en3 English faresbasbas 2020-07-21 23:59:21 24
en2 English faresbasbas 2020-07-21 23:58:45 70
en1 English faresbasbas 2020-07-21 23:57:13 1303 Initial revision (published)