活字印刷编译实现
/*你有一套活字字模 tiles,其中每個字模上都刻有一個字母 tiles[i]。返回你可以印出的非空字母序列的數目。注意:本題中,每個活字字模只能使用一次。輸入:"AAB"
輸出:8
解釋:可能的序列為 "A", "B", "AA", "AB", "BA", "AAB", "ABA", "BAA"。
*/#include<iostream>
using namespace std;
#include<vector>
#include<algorithm>
#include<string>int ans = 0;
void dfs(string &str, vector<int> &visit) {for (int i = 0; i < str.size(); i++) {if ((i > 0) && (str[i] == str[i - 1] && (visit[i - 1] == 0)))continue;if (visit[i] == 0) {visit[i] = 1;ans++;dfs(str, visit);visit[i] = 0;}}return;
}int numTilePossibilities(string tiles) {vector<int> visit (tiles.size(), 0);sort(tiles.begin(), tiles.end());dfs(tiles, visit);return ans;
}int main()
{string s;cin >> s;int n;n = numTilePossibilities(s);cout << "次數為" << n << "次" << endl;return 0;
}
?
總結
- 上一篇: Springboot 项目打包上传到私服
- 下一篇: eclipse配置环境变量