UVa 10098: Generating Fast

这道题要求按字典序生成字符串的全排列,不可重复(但字符可以重复,且区分大小写)。

基本思路是先对输入的字符串按字典序排序,然后从第一位开始递归,从所有输入的字符中选出一个填充,然后再选第二位......具体实现看代码。

要注意的是最后的输出方式,不小心的话会莫名其妙的WA,详情见代码。

我的解题代码如下:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <string>
#include <algorithm>
using namespace std;

char s[15],ss[15];
int N;

int cmp(const void *a, const void *b)
{
	return *(char *)a-*(char *)b;
}

void print_permutation(int cur, int len)
{
	if(cur==len)	//满足此条件则ss已经填满,输出
	{
		for(int i=0; i<len; i++) cout << ss[i]; cout << endl;	//这里用cout << ss << endl; 提交就WA了,天知道怎么回事 = - =
		return ;
	}
	for(int i=0; i<len; i++) if(!i || s[i]!=s[i-1])	//判断是否与上一个待选字符是相同的,如果相同就跳过
	{
		int c1=0,c2=0;
		for(int j=0; j<len; j++) if(s[j]==s[i]) c1++;
		for(int j=0; j<cur; j++) if(ss[j]==s[i]) c2++;
		if(c2<c1)	//分别对s和ss中s[i]出现的次数计数,只要c2<c1,就还可以使用s[i]放入ss中
		{
			ss[cur]=s[i];
			print_permutation(cur+1,len);
		}
	}
}

int main()
{
	cin >> N;
	while(N--)
	{
		cin >> s;
		int len = strlen(s);
		qsort(s,len,sizeof(char),cmp);	//按字典序对s排序
		print_permutation(0,strlen(s));
		cout << endl;
	}
	return 0;
}


### 解析 `command not found` 错误 当在 Bash 中执行命令时收到 `command not found` 的提示,意味着 Shell 无法找到该命令对应的可执行文件。这通常是因为环境变量 PATH 设置不正确或未安装相应的软件包。 对于特定于 SSH 密钥生成的情况,在尝试运行 `ssh-keygen` 命令时报错 `bash: ssh-key command not found`[^1],表明系统缺少 OpenSSH 客户端工具集的一部分或者是 PATH 变量中缺失指向这些工具的位置。 针对更广泛的 `command not found` 类型错误,无论是 Java、Bison 或者 AAPT 等其他开发工具所引发的类似问,解决方案可以归纳如下: #### 方法一:确认并安装必要的软件包 如果确实需要使用某个命令而它不在当前环境中可用,则应该考虑通过系统的包管理器来安装对应的应用程序。例如,在基于 Debian/Ubuntu Linux 发行版上可以通过 apt-get 来获取所需组件;而在 macOS 上则可能需要用到 Homebrew 工具来进行安装。 #### 方法二:设置正确的环境变量 有时候即使已经安装好了某些应用程序,但由于路径配置不当也会导致找不到命令的问发生。此时应当检查 `.bashrc`, `.zshrc` (取决于使用的 shell) 文件中的 `$PATH` 是否包含了目标命令所在的目录位置。比如 Mac 用户遇到 `zsh: command not found: aapt` 后按照说明进行了手动添加 Android SDK 路径的操作[^3]。 ```shell export PATH=$PATH:/path/to/aapt/location source ~/.zshrc # 刷新配置使更改生效 ``` #### 方法三:验证命令名称拼写无误 确保输入的命令名完全匹配实际存在的版本。大小写字母敏感度以及是否有额外字符都会影响识别结果。 #### 示例修复过程 假设要解决的是类似于 `Generating:` 开头的未知命令错误,具体操作步骤如下所示(这里以创建一个新的 Git 存储库为例): 1. 尝试直接调用命令看是否会抛出同样的异常; 2. 如果失败了,先查询本机是否已存在此命令及其所在的具体路径; ```shell which git || type -p git ``` 3. 若返回为空表示尚未安装Git客户端,那么依据操作系统选择合适的途径完成安装流程; 4. 对于那些预装却仍不可见的情形,重新加载Shell初始化脚本或将新加入的内容追加至现有 PATH 字符串内即可解决问
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值