We use cookies to ensure you have the best browsing experience on our website. Please read our cookie policy for more information about how we use cookies.
funcbiggerIsGreater(wstring)string{wAsRune:=[]rune(w)// Find pivoti:=-1forj:=len(wAsRune)-1;j-1>=0;j--{ifwAsRune[j-1]<wAsRune[j]{i=j-1break}}ifi==-1{return"no answer"}// Find new pivot just greater than pivotk:=-1forj:=len(wAsRune)-1;;j--{ifwAsRune[i]<wAsRune[j]{k=jbreak}}// Swap pivot with new pivotwAsRune[i],wAsRune[k]=wAsRune[k],wAsRune[i]// Reverse all elements just after new pivotforstart,end:=i+1,len(wAsRune)-1;start<end;start,end=start+1,end-1{wAsRune[start],wAsRune[end]=wAsRune[end],wAsRune[start]}returnstring(wAsRune)}
Cookie support is required to access HackerRank
Seems like cookies are disabled on this browser, please enable them to open this website
Bigger is Greater
You are viewing a single comment's thread. Return to all comments →
Golang solution, explanation is here.