LeetCode316. Remove Duplicate Letters

本文介绍了一种算法,用于从仅包含小写字母的字符串中移除重复字符,确保每个字母只出现一次,并且结果字符串在字典序上是最小的。通过两个示例演示了该算法的工作原理。

Given a string which contains only lowercase letters, remove duplicate letters so that every letter appear once and only once. You must make sure your result is the smallest in lexicographical order among all possible results.

Example 1:

Input: "bcabc"
Output: "abc"

Example 2:

Input: "cbacdcbc"
Output: "acdb"

本文主要参考博文:here

class Solution {
public:
	string removeDuplicateLetters(string s) {
		int m[256] = { 0 };
		bool used[256] = { false };
		string res = "0";

		for (auto c : s) m[c]++;
		for (auto c : s) {
			m[c]--;
			if (used[c]) continue;
			while (c < res.back() && m[res.back()]) {
				used[res.back()] = false;
				res.pop_back();
			}
			res += c;
			used[c] = true;
		}
		return res.substr(1);
	}
};

 

`iostat` 命令是 Unix 和 Linux 系统中用于报告 CPU 使用情况以及磁盘 I/O 统计信息的一个强大工具。它可以帮助系统管理员监控系统的输入输出设备负载,从而更好地了解系统的性能状况。 ### `iostat` 主要参数: 1. **基本使用**: - `-c`: 显示CPU使用统计信息。 - `-d [device]`: 指定显示特定块设备的信息,默认会列出所有磁盘设备的数据;可以跟具体的设备名如`sda`, 如果不指定则查看全部硬盘数据。 - `-x [interval] [count]`: 提供更详细的扩展统计信息,并设置采样间隔时间和次数。例如每秒刷新一次共收集5次数据可以用 `-x 1 5` 来表示。 2. **高级选项**: - `-k | -m`: 分别将传输速率单位设为KB/s 或 MB/s (默认是以 sectors/sector per second 形式给出)。 - `-t`: 添加时间戳到每一行输出之前,便于追踪历史记录。 - `-p [devices|ALL]`: 报告分区级别的统计数据;如果不带参数,则只对活动状态下的每个分区进行监测。 - `-N`: 包含网络文件系统的I/O统计(适用于某些平台)。 3. **组合应用**: 要同时获取CPU和Disk的状态,可以直接运行 `iostat` 不加任何参数; 若要持续观察一段时间内的变化趋势,比如每隔两秒钟更新并打印出三次结果,就可以这样写命令:`iostat -dx 2 3` 通过以上参数配置,你可以根据实际需要调整 `iostat` 的功能来满足不同的应用场景需求。 为了帮助你进一步理解如何有效利用这个强大的监控工具,以下是几个常见的查询场景示例: ```bash # 查看当前系统的整体IO性能概况 iostat # 获取详细模式下关于sdb设备的io等待百分比等额外字段信息 iostat -xd sdb # 定期检查(比如说每五秒一次),总共十次 iostat -xtc 5 10 ``` 希望这能帮您入门 `iostat` 工具的基本用法!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值