package leetcode.string; import java.sql.Array; import java.util.Arrays; /** * Created by w84108989 on 2019/3/28. */ //给定一个字符串 S,返回 “反转后的” 字符串,其中不是字母的字符都保留在原地,而所有字母的位置发生反转。 // // // // 示例 1: // // 输入:"ab-cd" // 输出:"dc-ba" // 示例 2: // // 输入:"a-bC-dEf-ghIj" // 输出:"j-Ih-gfE-dCba" // 示例 3: // // 输入:"Test1ng-Leet=code-Q!" // 输出:"Qedo1ct-eeLg=ntse-T!" public class reverse_917 { public static void main(String[] args) { System.out.println(reverseOnlyLetters("abc-def")); } public static String reverseOnlyLetters(String S) { char[] tmp = S.toCharArray(); int i = 0; int j = tmp.length - 1; while(i < j){ if (Character.isLetter(tmp[i]) && Character.isLetter(tmp[j])){ char t = tmp[i]; tmp[i] = tmp[j]; tmp[j] = t; i++; j--; } if (!Character.isLetter(tmp[i])) i++; if (!Character.isLetter(tmp[j])) j--; } String res = ""; for (int k = 0; k < tmp.length; k++) { res += tmp[k]; } return res; } }