cswork / OA打开练习工作台

BarclaysOA #2

Minimum Steps Required

估计困难评测数据准备中,可先阅读题面

考点(AI 标注)最短路回溯枚举

Given two strings str1 and str2 containing only 0s and 1s, there are steps to change str1 to str2: Find a substring of str1 of length 2 and reverse it, resulting in str1' (where str1' ≠ str1). Find a substring of str1' of length 3, reverse it, resulting in str1'' (where str1'' ≠ str1'). Repeat similar steps. String length ranges from 2 to 30. Requirements: Each step must be performed once, and you cannot skip previous steps to perform the next step. If it's possible to change str1 to str2, output the minimum required steps. Otherwise, output -1.

Constraints

N/A

Example 1

Input:

str1 = "1010"
str2 = "0011"

Output:

2

Explanation: Steps:

  • Choose substring in range [2, 3]: "1010" → "1001"
  • Choose substring in the range [0, 2]: "1001" → "0011"

Example 2

Input:

str1 = "1001"
str2 = "0110"

Output:

-1

Explanation: It's impossible to change str1 to str2.

Example 3

Input:

str1 = "10101010"
str2 = "00101011"

Output:

7

Explanation: The minimum steps required to change str1 to str2 is 7.