华为机试:倒置英文句子中单词的字母顺序
2014-09-20 16:18
375 查看
hello, I am good. -> olleh, I ma doog.
这题其实不难,当时脑子有点纠结符号,所以没做出来,还有一点客观原因,平时用的VS2010,到那里用的VC,硬是用的不舒服,算了不找理由了,可以参考博文<实例>C++ 将一句话里的单词进行倒置,标点符号不倒换。就是把第一个翻转省略,第二个翻转修改一下即可。
#include <iostream>
#include <cctype>
using namespace std;
void revese(char* start,char* end)
{
while(start<end)
{
*start=*start^*end;
*end=*start^*end;
*start=*start^*end;
start++;
end--;
}
}
int main()
{
char* p=new char[1024];
gets(p);
int len=strlen(p);
int i=0,j=0;
while(i<len)
{
if(isalpha(p[i]))
{
char *start=p+i;
j=i+1;
while(j<len)
{
if(isalpha(p[j]))
{
j++;
}
else
{
break;
}
}
char *end=p+j-1;
revese(start,end);
}
i=j+1;
}
for(int i=0;i<len;i++)
cout<<p[i];
return 0;
}
这题其实不难,当时脑子有点纠结符号,所以没做出来,还有一点客观原因,平时用的VS2010,到那里用的VC,硬是用的不舒服,算了不找理由了,可以参考博文<实例>C++ 将一句话里的单词进行倒置,标点符号不倒换。就是把第一个翻转省略,第二个翻转修改一下即可。
#include <iostream>
#include <cctype>
using namespace std;
void revese(char* start,char* end)
{
while(start<end)
{
*start=*start^*end;
*end=*start^*end;
*start=*start^*end;
start++;
end--;
}
}
int main()
{
char* p=new char[1024];
gets(p);
int len=strlen(p);
int i=0,j=0;
while(i<len)
{
if(isalpha(p[i]))
{
char *start=p+i;
j=i+1;
while(j<len)
{
if(isalpha(p[j]))
{
j++;
}
else
{
break;
}
}
char *end=p+j-1;
revese(start,end);
}
i=j+1;
}
for(int i=0;i<len;i++)
cout<<p[i];
return 0;
}
相关文章推荐
- 华为机试—倒置英文句子中单词的字母顺序
- 倒置英文句子中单词的字母顺序
- 倒置英文句子中单词的字母顺序
- 题目:倒置英文句子中单词的字母顺序
- 将一个句子里的英文单词倒叙输出,但不改变单词里的字母顺序
- "输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。 句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。 例如输入“I am a student.”,则输出“student
- 倒置英文字母中单词的字母顺序
- 编写一个程序,输入一串不超过60个字符组成的且不包含换行符的字符串,将字符串中的A到Z的字母按英文字典字母顺序重新排列,排列后的单词的长度要与原始句子中的长度相同,并且要求只对A到Z的字母重新排列,其
- 题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student
- 华为机试-倒置英文句中的单词
- 给出一句英文句子: "let there be light" 得到一个新的字符串,每个单词的首字母都转换为大写
- 华为机试: 计算字符串的相似度、输入一行字符,分别统计出包含英文字母、空格、数字和其它字符的个数
- java算法实现之--输入一个英文句子,翻转句子中的单词顺序,但单词内字符的顺序不变
- 倒置一个句子中的英文单词
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符顺序不变
- C 实现英语句子翻转 单词字母顺序不变(i love you -----> you love i)
- 输入一个英文句子,翻转句子中单词的顺序,单词内字符顺序不变
- 面试题:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。
- 牛客最近来了一个新员工Fish,每天早晨总是会拿着一本英文杂志,写些句子在本子上。同事Cat对Fish写的内容颇感兴趣,有一天他向Fish借来翻看,但却读不懂它的意思。例如,“student. a am I”。后来才意识到,这家伙原来把句子单词的顺序翻转了,正确的句子应该是“I am a student.”。Cat对一一的翻转这些单词顺序可不在行,你能帮助他么?
- 每天学习一点编程(2)(输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变)