网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月14日漏签0天
程序员吧 关注:278,136贴子:1,385,705
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 18回复贴,共1页
<<返回程序员吧
>0< 加载中...

【每日一题】字符串处理

  • 只看楼主
  • 收藏

  • 回复
  • 邪恶丶旭
  • 团队之首
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
一楼防偷窥!


  • 邪恶丶旭
  • 团队之首
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
输入一个字符串,将字符串中的字符'*'移到串的前部分,前面的非'*'字符后移,但不能改变非 '*'字符的先后顺序,输出字符串中字符'*'的数量和处理后的字符串。
如原始串为:ab**cd**e*12,输出:处理后为*****abcde12,'*'为 5。
ps:应大家要求,选了个比较简单的问题..


2025-05-14 21:48:00
广告
  • 邪恶丶旭
  • 团队之首
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
欢迎大家积极参加


  • 风灵思寒
  • 系统分析
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
顶。今天和女神去约会~小邪恶~


  • chunyang2178
  • 面向对象
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
其实可以用O(n)的时间,O(1)的空间,
电脑上编译器坏了,昨天更新win7导致的,代码不写了
思路如下:
用count= 0 记录遇到的*的个数
逆序 扫描字符串,遇到*,则count++
遇到字母则向后移动count个位置。
最后把*填充在后面
这样我就扫描一遍,而且只借助一个辅助变量,就实现了功能。


  • chunyang2178
  • 面向对象
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
LZ下次可以加上些对空间的约束
例如链表逆置,空间为O(1)


  • dream梦凡
  • 团队之首
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复 @chunyang2178 按照你的方法试了一下,高。
#include<iostream>
using namespace std;
int main(){
char a[1005];
int count;
while(gets(a))
{
count=0;
for(int i=0;a[i]!='\0';i++)
if(a[i]!='*')
count++;
else if(count!=0)
{a[i-count]^=a[i];a[i]^=a[i-count];a[i-count]^=a[i];}
if(a[--i]=='*')
{a[i-count]^=a[i];a[i]^=a[i-count];a[i-count]^=a[i];}
cout<<strlen(a)-count<<":";puts(a);cout<<endl;
}
return 0;
}


  • conn1987
  • 初涉编程
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Python版
a="ab**cd**e*12"
reduce(lambda x,y:y.__add__(x) if y.__eq__('*') else x.__add__(y),a)


2025-05-14 21:42:00
广告
  • 最爱小昕星
  • 算法提高
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
今天的题呢?


  • 莫见鬼了
  • 语法提高
    4
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
没了


  • 程序员_YY
  • 系统分析
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 18回复贴,共1页
<<返回程序员吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示