題目連結:   https://e-tutor.itsa.org.tw/e-Tutor/mod/programming/view.php?id=50117

題目大意:  輸入一行大寫英文跟數字,把英文字母右移數字

思路:  反著做,字串切割存入字串陣列,檢查陣列元素第1個就可以知道是數字還是字母,接著就右移並%26,

維持字母正確,水題,這題老樣子judge爛,用C++ stringstream 有問題,java才能過

代碼:  

import java.util.*;    
    
public class Main {    
    
    public static void main(String[] args) {    
        Scanner input = new Scanner(System.in);    
        int n = Integer.parseInt(input.nextLine());  
        while(n-- != 0){  
            String s[] = input.nextLine().split(" ");  
            StringBuilder str = new StringBuilder("");  
            int num = 0;  
            for(int i = s.length - 1; i >= 0; i--){  
                char c = s[i].toCharArray()[0];  
                if((c - '0') <= 9)  
                    num = Integer.parseInt(s[i]);  
                else{  
                    char t = (char)(c + num);
                    str.append((char)((t-'A') % 26 + 'A'));  
                }  
            }  
            System.out.println(str.reverse());  
        }  
    }  
    /*...Java才給過G8 */  

/*
1
A B C 13 D E 2 X Y Z 20
*/

 

 

文章標籤
全站熱搜