Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- *Given two strings, you need to transpose the first string to the second string
- *by means of only swap between 2 consecutive characters in the first string.
- *This must be performed by doing a series of these swaps in order to get the second string.
- */
- public void transposeString(String first, String second) {
- char[] firstArr = first.toCharArray();
- char[] secondArr = second.toCharArray();
- // check if these strings could be transposed
- Arrays.sort(firstArr);
- Arrays.sort(secondArr);
- if (!String.valueOf(firstArr).equals(String.valueOf(secondArr))) {
- System.out.println("Cannot Swap");
- return;
- }
- firstArr = first.toCharArray();
- secondArr = second.toCharArray();
- boolean flag = true;
- // swap
- while (flag) {
- flag = false;
- for (int i = 0; i < first.length() - 1; i++) {
- if (firstArr[i] != secondArr[i]) {
- char temp = firstArr[i];
- firstArr[i] = firstArr[i + 1];
- firstArr[i + 1] = temp;
- flag = true;
- }
- }
- }
- System.out.println(String.valueOf(firstArr));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement