关注
第一道题其实就是剑指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
相关推荐
09-11 17:50
东南大学 算法工程师 点赞 评论 收藏
分享
昨天 15:32
门头沟学院 Java 点赞 评论 收藏
分享
08-08 11:34
深圳大学 C++ 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 为了求职,我做过的疯狂伪装 #
6478次浏览 95人参与
# 从顶到拉给所有面过的公司评分 #
3169次浏览 53人参与
# 小红书校招直播来了 #
82390次浏览 478人参与
# 职场破冰,你们都聊什么? #
2650次浏览 50人参与
# 晒晒你的中秋福利 #
13421次浏览 83人参与
# 聊聊这家公司值得去吗 #
542932次浏览 3627人参与
# 产品每日一题 #
59574次浏览 604人参与
# 你面试被问到过哪些不会的问题? #
13181次浏览 559人参与
# 如何快速融入团队? #
31025次浏览 278人参与
# 机械笔面试考察这些知识点 #
9260次浏览 89人参与
# 你觉得早上几点上班合适? #
81226次浏览 329人参与
# 广联达求职进展汇总 #
9475次浏览 50人参与
# 电网笔面经互助 #
45323次浏览 428人参与
# 远景求职进展汇总 #
60241次浏览 317人参与
# 秋招报数:你投了多少家公司? #
19308次浏览 204人参与
# 浪潮求职进展汇总 #
15378次浏览 131人参与
# 安克创新求职进展汇总 #
47183次浏览 496人参与
# 上班摸鱼,你都在干些什么? #
4433次浏览 74人参与
# 为什么国企只招应届生 #
197264次浏览 1212人参与
# 机械人,你最希望上岸的公司是? #
180863次浏览 1893人参与
# 秋招的嫡长offer #
18362次浏览 174人参与