106年鐵路特考員級程式設計概要
三、下列程式能將輸入的字串 input = “abcdef”,反向列印為 “fedcba”。試以遞迴的方式撰寫副程式 stringReverseHelper,且其參數宣告必須與stringReverse 方法內的呼叫一致。(25分) public class Reverse { public static void stringReverse(char[ ] array) { stringReverseHelper( array, 0 ); System.out.println( ); } // stringReverseHelper 副程式的放置處 public static void main(String args[ ]) { String input = “abcdef”; stringReverse(input.toCharArray( )); } // end main } // end class Reverse |
答:
package test1_1; public class Reverse { // 使用這個方法來反轉字元陣列 public static void stringReverse(char[] array) { stringReverseHelper(array, 0); System.out.println( ); // 印出一個換行,使結果更為清晰 } /** * 一個遞迴的副程式來反轉字元陣列 * @param array 要反轉的字元陣列 * @param index 當前遞迴處理的字元的索引 */ private static void stringReverseHelper(char[ ] array, int index) { // 如果索引已經到達陣列的結尾,則返回 if (index == array.length) { return; } // 對下一個字元進行遞迴呼叫 stringReverseHelper(array, index + 1); // 當遞迴呼叫完成,輸出當前索引的字元 System.out.print(array[index]); } public static void main(String args[]) { String input = "abcdef"; stringReverse(input.toCharArray( )); // 將字串轉換為字元陣列,並且反轉輸出 } // end main } // end class Reverse |
執行結果:
fedcba