输入字符串去重后按照顺序输出
时间: 2023-03-31 18:00:31 浏览: 67
可以使用哈希表来实现字符串去重,具体步骤如下:
1. 定义一个哈希表,用于存储每个字符是否出现过。
2. 遍历字符串中的每个字符,如果该字符没有出现过,则将其标记为出现过,并将其加入结果字符串中。
3. 最后输出结果字符串即可。
以下是示例代码:
```
#include <iostream>
#include <unordered_set>
using namespace std;
string removeDuplicates(string s) {
unordered_set<char> seen;
string res = "";
for (char c : s) {
if (!seen.count(c)) {
seen.insert(c);
res += c;
}
}
return res;
}
int main() {
string s = "abcaabbcc";
string res = removeDuplicates(s);
cout << res << endl; // 输出 "abc"
return ;
}
```
相关问题
7-1 字符串去重后输出,输入一个字符串,字符串之间用空格分隔,将其去重后按照原字符串顺序输出,输出格式:以列表的形式输出去重后的字符串。
可以使用Python中的set()函数快速去重,再根据原字符串顺序进行输出。具体代码如下:
```python
string = input("请输入字符串:")
lst = string.split() # 将字符串按照空格分割成列表
unique_lst = list(set(lst)) # 利用set()函数进行去重,并转换回列表
result = [] # 存储按原字符串顺序排列后的结果
for s in lst:
if s in unique_lst:
result.append(s)
unique_lst.remove(s) # 避免重复添加
print(result)
```
例如,输入字符串"hello world hello python world",则输出结果为:['hello', 'world', 'python']
Java 键盘输入一串字符串,去重后输出
好的,您可以通过以下 Java 代码实现:
```java
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.nextLine();
Set<Character> set = new HashSet<>();
for (int i = 0; i < str.length(); i++) {
char ch = str.charAt(i);
set.add(ch);
}
StringBuilder sb = new StringBuilder();
for (char ch : set) {
sb.append(ch);
}
System.out.println(sb.toString());
}
}
```
首先,我们通过 `Scanner` 类获取用户输入的字符串。然后,我们定义了一个 `HashSet` 集合,遍历字符串中的每个字符,将其添加到该集合中。由于 `HashSet` 会自动去重,因此我们不需要进行额外的去重操作。
接着,我们使用 `StringBuilder` 类构建一个新的字符串,将 `HashSet` 中去重后的字符按照顺序添加到该字符串中。最后,我们使用 `System.out.println()` 方法将新字符串输出。
希望这个代码可以帮到您!