关注
第一道题其实就是剑指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
相关推荐
查看14道真题和解析
点赞 评论 收藏
分享
牛客热帖
正在热议
# 拼多多求职进展汇总 #
233302次浏览 2030人参与
# 在职场上,你最讨厌什么样的同事 #
5712次浏览 81人参与
# 阿里云管培生offer #
58963次浏览 1748人参与
# 25届秋招总结 #
396535次浏览 3976人参与
# 哪些公司校招卡第一学历 #
32830次浏览 105人参与
# 地方国企笔面经互助 #
6536次浏览 16人参与
# 北方华创开奖 #
66002次浏览 549人参与
# ai智能作图 #
21360次浏览 262人参与
# 硬件兄弟们 甩出你的华为奖状 #
77944次浏览 625人参与
# 实习,投递多份简历没人回复怎么办 #
2435835次浏览 34703人参与
# 工作中,你有没有遇到非常爱骂人的领导? #
4724次浏览 47人参与
# 实习与准备秋招该如何平衡 #
722790次浏览 8551人参与
# 我的实习求职记录 #
6121435次浏览 83953人参与
# 如果再来一次,你还会选择这个工作吗? #
110439次浏览 1109人参与
# 25届机械人为了秋招做了哪些准备? #
24989次浏览 355人参与
# 签了三方后想毁约怎么办 #
18563次浏览 111人参与
# 如果你有一天可以担任公司的CEO,你会做哪三件事? #
9955次浏览 213人参与
# 机械求职避坑tips #
22154次浏览 240人参与
# 游戏求职进展汇总 #
52760次浏览 344人参与
# 夸夸我的求职搭子 #
132020次浏览 1360人参与
# 腾讯求职进展汇总 #
207563次浏览 1694人参与
# 实习想申请秋招offer,能不能argue薪资 #
35782次浏览 308人参与