关注
第一道题其实就是剑指offer中调整数组顺序使奇数位于偶数前变形题。 如果需要保证相对顺序不变的话,可以直接另开两个字符串空间,第一个字符串保存#,另一个字符串保存字母,最后将这两个字符串的和重新赋值给原先的字符串。 void string_shift2(string &s,int len)
{
if(s.empty()) return;
string s1,s2;
for(auto e:s)
{
if(e=='#') s1+=e;
else if(isalpha(e)) s2+=e;
}
s=s1+s2;
} 如果不需要保证相对顺序的话,可以维护两个指针。第一个指针指向字符串的第一个字符,它只向后移动,直到遇见字符为字母,第二个指针指向数组的最后一个字符,它只向前移动,直到遇到#。然后交换两个指针的内容,一直重复上述过程,直到两个指针相遇。 void string_shift(string &s,int len)
{
if(s.empty()) return;
int index1=0;
int index2=len-1;
while(index1<index2)
{
while(index1<index2&&!isalpha(s[index1]))
++index1;
while(index1<index2&&isalpha(s[index2]))
--index2;
if(index1<index2)
swap(s[index1],s[index2]);
}
}
查看原帖
点赞 2
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 实习简历求拷打 #
8480次浏览 100人参与
# 担心入职之后被发现很菜怎么办 #
265525次浏览 1125人参与
# 秋招被挂春招仍然能投的公司 #
5810次浏览 90人参与
# 作业帮求职进展汇总 #
81851次浏览 534人参与
# 什么是优秀的实习经历 #
7543次浏览 200人参与
# 京东美团大战,你怎么看? #
157416次浏览 856人参与
# 投格力的你,拿到offer了吗? #
151627次浏览 808人参与
# mt对你说过最有启发的一句话 #
32886次浏览 398人参与
# 机械人晒出你的简历 #
146310次浏览 874人参与
# 为了找工作你花了哪些钱? #
74726次浏览 359人参与
# 摸鱼被leader发现了怎么办 #
99143次浏览 634人参与
# 考研失败就一定是坏事吗? #
200055次浏览 1365人参与
# 秋招特别不鸣谢 #
14728次浏览 172人参与
# 选实习,你更看重哪方面? #
12887次浏览 210人参与
# 第一次面试 #
1035918次浏览 13682人参与
# 金融财会交流会 #
128220次浏览 441人参与
# 今年秋招你收到了多少封邮件? #
17322次浏览 219人参与
# 你觉得多少薪资算SSP? #
120356次浏览 425人参与
# 机械/制造每日一题 #
80141次浏览 1411人参与
# 实习教会我的事 #
46409次浏览 352人参与