當(dāng)前位置:
首頁(yè) >
字符移位
發(fā)布時(shí)間:2025/6/17
36
豆豆
來(lái)源: 牛客網(wǎng)?http://www.nowcoder.com/questionTerminal/7e8aa3f9873046d08899e0b44dac5e43
小Q最近遇到了一個(gè)難題:把一個(gè)字符串的大寫字母放到字符串的后面,各個(gè)字符的相對(duì)位置不變,且不能申請(qǐng)額外的空間。
你能幫幫小Q嗎?
輸入描述:
輸入數(shù)據(jù)有多組,每組包含一個(gè)字符串s,且保證:1<=s.length<=1000.
輸出描述:
對(duì)于每組數(shù)據(jù),輸出移位后的字符串。
輸入例子:
AkleBiCeilD
輸出例子:
kleieilABCD
?
要求不能用額外的空間,那就只能就地移動(dòng)了。遍歷到一個(gè)大寫字母,將其后的所有字符向前移動(dòng)一步,然后將此大寫字母放到末尾。重復(fù)以上過(guò)程。
import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);while (sc.hasNext()) {String s = sc.nextLine();char[] a = s.toCharArray();int n = s.length();int end = n;for (int i = 0; i < end; ++i) {if (a[i] >= 'A' && a[i] <= 'Z') {char tmp = a[i];for (int j = i; j < n - 1; ++j)a[j] = a[j + 1];a[n - 1] = tmp;end--;i--;}}for (int k = 0; k < n; ++k)System.out.print(a[k]);System.out.println();}} } View Code?
轉(zhuǎn)載于:https://www.cnblogs.com/duanguyuan/p/5675179.html
總結(jié)
- 上一篇: iOS tableview的常用dele
- 下一篇: base--AuditResult