关注
第一道题其实就是剑指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
相关推荐
查看7道真题和解析 点赞 评论 收藏
分享
03-16 17:07
门头沟学院 Java 点赞 评论 收藏
分享
02-24 20:09
门头沟学院 软件测试 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 跟HR说什么能被秒回? #
12148次浏览 210人参与
# 校招笔试 #
453843次浏览 2916人参与
# MiniMax求职进展汇总 #
18732次浏览 261人参与
# 你收到了哪些公司的笔试? #
24310次浏览 140人参与
# 小米笔试 #
142014次浏览 1007人参与
# 春招/暑实第一面是哪家? #
24920次浏览 262人参与
# 巨人网络春招 #
10617次浏览 164人参与
# 网易游戏笔试 #
5098次浏览 67人参与
# 网易笔试 #
150707次浏览 788人参与
# 视觉/交互/设计百问百答 #
76717次浏览 461人参与
# 职能管理面试记录 #
9988次浏览 53人参与
# AI Coding的使用心得 #
25398次浏览 227人参与
# OPPO笔试 #
21763次浏览 98人参与
# 把自己当AI,现在最消耗你token的问题是什么? #
4430次浏览 119人参与
# 美团笔试 #
739939次浏览 4945人参与
# 如何一边实习一边找下家? #
36891次浏览 290人参与
# 面试官最爱问的 AI 问题是...... #
20826次浏览 678人参与
# 你找工作的时候用AI吗? #
195511次浏览 977人参与
# 正在春招的你,也参与了去年秋招吗? #
360490次浏览 2619人参与
# AI coding的好用工具分享 #
70949次浏览 552人参与
# 现在入门AI应该走哪些方向? #
6161次浏览 121人参与
# 你的嫡系AI是哪个? #
5786次浏览 136人参与