V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  yanqiyu  ›  全部回复第 8 页 / 共 36 页
回复总数  715
1 ... 4  5  6  7  8  9  10  11  12  13 ... 36  
2023-09-17 06:08:04 +08:00
回复了 zzzkkk 创建的主题 C 这年头搞 c 还有前途吗 看看我的 leetcode 第 151 题目 反转字符串
@yanqiyu 洗了个澡发现边界情况写错了,修了(狗头)
#include <stdbool.h>
#include <stdio.h>
#include <string.h>

void print_word(const char *str, size_t start, size_t stop) {
for (size_t i = start; i <= stop; i++) {
// there is sth like %.*s but for simplicity ...
printf("%c", str[i]);
}
}

int main(int argc, char **argv) {
char test_str[] = " f test sentence here bla bla ";
size_t len = strlen(test_str) - 1;
size_t start = len;
size_t stop = len;
// flag just for proper trailing space ...
bool is_first_wold = true;
for (int i = len; i >= 0; i--) {
if (i != 0 && test_str[i] == ' ' && (test_str[i - 1] != ' ')) {
stop = i - 1;
} else if (test_str[i] != ' ' && (i == 0 || test_str[i - 1] == ' ')) {
start = i;
if (is_first_wold) {
is_first_wold = false;
} else {
printf(" ");
}
print_word(test_str, start, stop);
}
}
return 0;
}
2023-09-17 05:50:50 +08:00
回复了 zzzkkk 创建的主题 C++ fsantinize 弱智
@zzzkkk 写这么多 while 属于看着就血压高了,寻找单词就看寻找边界就行,一个 while/for 反向找单词边界然后输出就够了
2023-09-17 05:47:57 +08:00
回复了 zzzkkk 创建的主题 C 这年头搞 c 还有前途吗 看看我的 leetcode 第 151 题目 反转字符串
倒序扣单词并不困难啊,维护两个 index ,一个头部一个尾部,寻找空格和非空格的边界就完了,哪用得着这么多 while

这么写结构清晰很多,并且含义还容易理解

#include <stdbool.h>
#include <stdio.h>
#include <string.h>

void print_word(const char *str, size_t start, size_t stop) {
for (size_t i = start; i < stop; i++) {
// there is sth like %.*s but for simplicity ...
printf("%c", str[i]);
}
}

int main(int argc, char **argv) {
char test_str[] = " f test sentence here bla bla ";
size_t len = strlen(test_str) - 1;
size_t start = len;
size_t stop = len;
// flag just for proper trailing space ...
bool is_first_word = true;
for (size_t i = len; i > 0; i--) {
if (test_str[i] == ' ' && test_str[i - 1] != ' ') {
stop = i;
} else if (test_str[i] != ' ' && test_str[i - 1] == ' ') {
start = i;
if (is_first_word) {
is_first_word = false;
} else {
printf(" ");
}
print_word(test_str, start, stop);
}
}
return 0;
}
2023-09-11 21:27:18 +08:00
回复了 LuckyPocketWatch 创建的主题 Linux Linux 程序启动缓慢,如何查看缓慢在那里?
盲猜是你链接的库里面的全局/静态对象初始化的时间
可以借助 gprof 这样的 profile 工具采样调查耗时
或者-finstrument-functions 配合手写__cyg_profile_func_enter 以及__cyg_profile_func_exit 直接看每个函数的耗时(不知道有没有造好的轮子)
2023-09-01 18:29:14 +08:00
回复了 bitllion 创建的主题 Linux Linux 虚拟机防火墙如何实现
这种情况下网络请求是从桥上走的,估计得开 bridge-nf-call-iptables 才能让这些请求被过滤
但是要注意这么开可能有别的副作用
2023-08-31 20:52:01 +08:00
回复了 Navee 创建的主题 程序员 包括我公司在内,身边已经有 3 家公司实行工分制了
原来的代码: return xx;/return !xx;

现在的代码:
起手一个 boolReturnValueWarpI 的接口类,衍生出 boolReturnValuePassthrough boolReturnValueInvert boolReturnValueAlwaysFalse boolReturnValueAlwaysTrue boolReturnValueRandomly 几个类,大家一起重载虚方法 bool operator()(bool),然后在设计工厂类 boolReturnValueWarpF 构造对应的对象,为了这个事情再引入一个动态的配置数据库 gConfiguration
最后
return boolReturnValueWarpF::Instance().GetObject(gConfiguration.GetBoolWarpConf())(xx);
又唬人有专业,别人有意见还能说你看我这多灵活,还支持运行时选择怎么处理 xx
2023-08-31 20:45:16 +08:00
回复了 Navee 创建的主题 程序员 包括我公司在内,身边已经有 3 家公司实行工分制了
那我必然表演什么叫做过度设计
2023-08-31 18:19:44 +08:00
回复了 JarvenI 创建的主题 Linux 请问 pve7.4 如何修复根分区?
最后两行只是告诉你在重放日志,没有说报错。卡在这里别有原因,我建议开高 loglevel 等级看看
2023-08-26 15:30:39 +08:00
回复了 8675bc86 创建的主题 Linux 跨发行版升级
都很 FHS compliant ,你要是操作骚+技术好应该能做到
2023-08-24 05:21:07 +08:00
回复了 diyer22 创建的主题 Linux add_service: 便捷添加 systemd 开机自启启动项的 CLI 工具
其实我一直用的土办法:
先 systemd-run 把东西跑起来,然后修改产生的 transient unit file 作为 unit file
2023-08-14 05:24:57 +08:00
回复了 stephen2009 创建的主题 Linux docker overlay 占用磁盘大
@bohai drop_caches 丢掉的是页面缓存,在内存里面
真正可能成为陷阱的是一些被进程打开的文件,拿着引用计数导致磁盘上文件不能真正的删除,但这显然不是 po 遇到的问题,这类情况是删除了文件但 df 没变的时候
---
po 遇到的问题的一个可能性是 docker 的数据是层叠的 overlayfs ,这东西要是容器写入了 base 里面的文件可能触发什么奇怪的全文件的 COW 导致占用翻倍(最极端的情况修改一个文件的几个 kb 的段,或者改一下文件的权限就可能导致整个文件被复制)
docker container diff container_name 可以看看是不是有这类情况
另外建议就是经常被修改的路径(状态,配置)放到 volume 里面,不要 commit 进容器,不要让容器在运行时修改容器本身
(所以我爱用 btrfs 做存储后端)
2023-07-24 17:07:18 +08:00
回复了 yjcn 创建的主题 Linux btrfs corrupt 数量持续增长 原因是啥呢?
dmesg 里面可能有具体出问题的文件路径
以及可以跑一遍 scrub 看看具体怎样
fedora silverblue
/var 就是数据
2023-07-20 16:03:50 +08:00
回复了 raw0xff 创建的主题 Linux Linux 服务器中如何安全的存储私钥文件?
HSM ,管理员物理带在身上,需要签名的时候插上去
2023-07-19 05:34:47 +08:00
回复了 alanying 创建的主题 Linux 大家 Linux 新安装一般是怎么分区的?
/efi /boot / (btrfs 的 子卷做 home)

单独的 /boot 的原因是 grub 对于 btrfs 没写入支持,有时候会有问题
2023-07-11 01:26:04 +08:00
回复了 xiaoluobo58 创建的主题 Linux 如何完全基于 Linux 内核编写自己的 Linux 发行版?
@xiaoluobo58 并不会简单...大概,要构建一个可用的系统你至少得写一套 shell+libc+编译器+init
作为玩具规模太大,作为项目重复造轮子严重
2023-07-10 18:47:51 +08:00
回复了 richangfan 创建的主题 Linux Chrome 和 VSCode,每个进程能占用 1T 虚拟内存,有图有真相
@wxf666 这也是为什么有的语言的分配器倾向于直接要一个 T 再自己分配,好处就是不用频繁的用 syscall 找 os 要地址,一口气要个大的。
1 ... 4  5  6  7  8  9  10  11  12  13 ... 36  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2610 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 35ms · UTC 15:43 · PVG 23:43 · LAX 07:43 · JFK 10:43
Developed with CodeLauncher
♥ Do have faith in what you're doing.