Easy-4
2017-05-02 17:14
106 查看
leetcode 557. Reverse Words in a String III
Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.
Example 1:
Note: In the string, each word is separated by single space and there will not be any extra space in the string.
AC:
char* reverseWords(char* s) {
int start = 0; int end = 0;
while (s[end] != '\0')
{
if (s[end] != ' ')
{
end++;
}
else
{
//逆序[start,end-1],start=end=end+1
int mid = (start + end - 1) / 2;
for (int i = start; i <=mid; i++)
{
char buf = s[i];
s[i] = s[end - 1 - i + start];
s[end - 1 - i + start] = buf;
}
end = end + 1;
start = end;
}
}
//对于最后一个字段
int mid = (start + end - 1) / 2;
for (int i = start; i <= mid; i++)
{
char buf = s[i];
s[i] = s[end - 1 - i + start];
s[end - 1 - i + start] = buf;
}
return s;
}
tip:
在循环的else中,是先给end加1操作的,故下一句start=end即可。
Given a string, you need to reverse the order of characters in each word within a sentence while still preserving whitespace and initial word order.
Example 1:
Input: "Let's take LeetCode contest" Output: "s'teL ekat edoCteeL tsetnoc"
Note: In the string, each word is separated by single space and there will not be any extra space in the string.
AC:
char* reverseWords(char* s) {
int start = 0; int end = 0;
while (s[end] != '\0')
{
if (s[end] != ' ')
{
end++;
}
else
{
//逆序[start,end-1],start=end=end+1
int mid = (start + end - 1) / 2;
for (int i = start; i <=mid; i++)
{
char buf = s[i];
s[i] = s[end - 1 - i + start];
s[end - 1 - i + start] = buf;
}
end = end + 1;
start = end;
}
}
//对于最后一个字段
int mid = (start + end - 1) / 2;
for (int i = start; i <= mid; i++)
{
char buf = s[i];
s[i] = s[end - 1 - i + start];
s[end - 1 - i + start] = buf;
}
return s;
}
tip:
在循环的else中,是先给end加1操作的,故下一句start=end即可。
相关文章推荐
- ACM-Easy Problem-Where is wrong?
- Leetcode 169. Majority Element[easy]
- Web Development Solutions: Ajax, APIs, Libraries, and Hosted Services Made Easy
- easy 多选框 单选框 选中问题
- centos安装setuptools (easy_install)
- 32-bit Assembler is Easy, why and how to develop using the assembler; start learning to program in Assembly now!
- easy-ui 取得选中行数据项
- Trust in Online Banking: Hard to Earn, Easy to Lose
- EasyCamera支持接入海康威视IPC-SDK
- Python中的easy_install
- 分享一实战性开源MVC框架<Linux、Windows跨平台开发so easy>
- LibSVM学习(六)——easy.py和grid.py的使用
- 404.leetcode Sum of Left Leaves(easy)[二叉树 递归]
- An easy way to update (patch) Linux kernel using yum
- python中easy_install 卸载已经安装的包
- Office2010安装很Easy!
- 283. Move Zeroes 难度:easy
- curl_easy_perform post 数据死循环?
- easy ui插件