Submission #66610996


Source Code Expand

"""
<方針>
- 左から走査すればまあわかる。
- 大きい文字はなるべく右に持っていこうぜ。
- クソみたいな説明でごめん。
"""
T = int(input())
for _ in range(T):
  N = int(input())
  S = list(input())
  # 文字列の長さが1は例外
  if(N == 1):
    print(S[0])
    continue
  
  # 左から順番に大きい文字を見つける
  for i in range(N-1):
    if(S[i] > S[i+1]):
      break
  
  # 見つけた大きい文字より大きい右の文字を見つける
  j = N
  for _j in range(i+1, N):
    if(S[_j] > S[i]):
      j = _j
      break
  
  # 文字の順番を変える
  T = S[:i] + S[i+1:j] + S[i:i+1] + S[j:N]
  
  print("".join(T))

Submission Info

Submission Time
Task D - String Rotation
User mattsunkun
Language Python (PyPy 3.10-v7.3.12)
Score 400
Code Size 724 Byte
Status AC
Exec Time 264 ms
Memory 90556 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 400 / 400
Status
AC × 1
AC × 18
Set Name Test Cases
Sample 00_sample_01.txt
All 00_sample_01.txt, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt
Case Name Status Exec Time Memory
00_sample_01.txt AC 61 ms 76432 KiB
01_test_01.txt AC 236 ms 87592 KiB
01_test_02.txt AC 242 ms 88044 KiB
01_test_03.txt AC 254 ms 90556 KiB
01_test_04.txt AC 264 ms 89452 KiB
01_test_05.txt AC 68 ms 80988 KiB
01_test_06.txt AC 69 ms 80952 KiB
01_test_07.txt AC 69 ms 80740 KiB
01_test_08.txt AC 68 ms 80548 KiB
01_test_09.txt AC 61 ms 77780 KiB
01_test_10.txt AC 61 ms 78472 KiB
01_test_11.txt AC 63 ms 79712 KiB
01_test_12.txt AC 63 ms 79692 KiB
01_test_13.txt AC 63 ms 79548 KiB
01_test_14.txt AC 63 ms 79668 KiB
01_test_15.txt AC 63 ms 79628 KiB
01_test_16.txt AC 67 ms 87664 KiB
01_test_17.txt AC 144 ms 84256 KiB