目录
牛客_点击消除(栈)
解析代码
牛客_点击消除(栈)
点击消除_牛客题霸_牛客网
描述:
牛牛拿到了一个字符串。
他每次“点击”,可以把字符串中相邻两个相同字母消除,例如,字符串"abbc"点击后可以生成"ac"。
但相同而不相邻、不相同的相邻字母都是不可以被消除的。
牛牛想把字符串变得尽可能短。他想知道,当他点击了足够多次之后,字符串的最终形态是什么?
解析代码
用栈来模拟消除的过程即可。
#include <iostream>
#include <cmath>
#include <vector>
using namespace std;int main()
{int a = 0;while(cin >> a){cout << a << " = ";vector<int> arr;for(int i = 2; i <= sqrt(a); ++i){while(a % i == 0){// cout << i << " * ";arr.push_back(i);a /= i;}}if(a != 1) // 说明是素数{// cout << a << " * ";arr.push_back(a);}int sz = arr.size();for(int i = 0; i < sz; ++i){cout << arr[i];if(i != sz - 1)cout << " * ";}cout << endl;}return 0;
}