
Amend The Sentence
Cho một xâu kí tự s
gồm nhiều từ. Trong đó mỗi từ sẽ được bắt đầu bởi một kí tự in hoa.
Vì một lí do gì đó, người ta quên chèn các khoảng trắng giữa các từ.
Hãy viết chương trình sửa lại xâu kí tự đó theo yêu cầu sau:
- Tách các từ, và thêm
1
kí tự cách (space) giữa2
từ liên tiếp - Chuyển đổi các kí tự in hoa thành kí tự in thường
Ví dụ
- Với
s = "CodelearnIsAwesome"
, thì kết quảamendTheSentence(s) = "codelearn is awesome"
- Với
s = "Hello"
, thì kết quảamendTheSentence(s) = "hello"
.
Đầu vào/Đầu ra:
-
[Thời gian chạy] 0.5 giây với C++, 3s với Java và C#, 4s với Python, JS và GO
-
[Đầu vào] string s
Một xâu chứa kí tự chữ cái in hoa và in thường.
Điều kiện:3 ≤ s.length ≤ 1000
. -
[Đầu ra] string
Câu đã thay đổi.
Hướng dẫn bài tập.
Các ký tự từ 'A'
đến 'Z'
nằm ở vị trí từ 65
đến 90
trong bảng mã ASCII.
Các ký tự từ 'a'
đến 'z'
nằm ở vị trí từ 97
đến 122
trong bảng mã ASCII.
Suy ra các ký tự in hoa và in thường của 1
ký tự chữ chênh lệch nhau một khoảng là 32
. Ví dụ:
'A' + 32 = 'a'; h - 32 = 'H'
Code mẫu:
Ngôn ngữ C++:
string amendTheSentence(string s)
{
string result;
if (s[0] >= 'A' && s[0] <= 'Z')
s[0] += 32;
for (int i = 0; i <s.length(); i++)
if (s[i] >= 'A' && s[i] <= 'Z')
result = result + " " + char(s[i] + 32);
else
result = result + s[i];
return result;
}
Post Comment