題目
給定乙個金鑰字串s,只包含字母,數字以及 『-』(破折號)。n 個 『-』 將字串分成了 n+1 組。給定乙個數字 k,重新格式化字串,除了第乙個分組以外,每個分組要包含 k 個字元,第乙個分組至少要包含 1 個字元。兩個分組之間用 『-』(破折號)隔開,並且將所有的小寫字母轉換為大寫字母。
給定非空字串 s 和數字 k,按照上面描述的規則進行格式化。
示例:1.輸入:s = 「5f3z-2e-9-w」, k = 4
輸出:「5f3z-2e9w」
解釋:字串 s 被分成了兩個部分,每部分 4 個字元;
注意,兩個額外的破折號需要刪掉。
2.輸入:s = 「2-5g-3-j」, k = 2
輸出:「2-5g-3j」
解釋:字串s被分成了3個部分,按照前面的規則描述,第一部分的字元可以少於給定的數量,其餘部分皆為 2 個字元。
**分享:
#include #include #include #define n 100
int main()
}m = strlen(array2); //計算數字串組中字元的個數
//將陣列2中的資料逆向儲存到陣列3,方便對其新增『-』
for(i = 0, j = m - 1; j >= 0; j--, i++)//利用迴圈將array2反向儲存至array3
//利用對金鑰k取餘,對陣列3進行新增『-』操作
for(i = 0; i < n; i++)
array3[i] = '-';}}
m = strlen(array3);
//若末元素為破折號,則刪去
if(array3[m - 1] == '-')
//將陣列3逆向輸出,就是對陣列1操作的結果
printf("格式化後的結果是:\n");
for(i = m - 1; i >= 1; i--)//利用ascaii碼進行大小寫變換
else
printf("%c", array3[i]);
}return 0;
}
執行結果: 482 金鑰格式化
給定乙個金鑰字串s,只包含字母,數字以及 破折號 n 個 將字串分成了 n 1 組。給定乙個數字 k,重新格式化字串,除了第乙個分組以外,每個分組要包含 k 個字元,第乙個分組至少要包含 1 個字元。兩個分組之間用 破折號 隔開,並且將所有的小寫字母轉換為大寫字母。給定非空字串 s 和數字 k,按照...
482 金鑰格式化
有乙個金鑰字串 s 只包含字母,數字以及 破折號 其中,n 個 將字串分成了 n 1 組。給你乙個數字 k,請你重新格式化字串,除了第乙個分組以外,每個分組要包含 k 個字元 而第乙個分組中,至少要包含 1 個字元。兩個分組之間需要用 破折號 隔開,並且將所有的小寫字母轉換為大寫字母。給定非空字串 ...
482 金鑰格式化
有乙個金鑰字串 s 只包含字母,數字以及 破折號 其中,n 個 將字串分成了 n 1 組。給你乙個數字 k,請你重新格式化字串,使每個分組恰好包含 k 個字元。特別地,第乙個分組包含的字元個數必須小於等於 k,但至少要包含 1 個字元。兩個分組之間需要用 破折號 隔開,並且將所有的小寫字母轉換為大寫...