[编程题]鸡鸭分类问题
鸡鸭分类问题
http://www.nowcoder.com/questionTerminal/f87616abbac44842b43f24ddd3cf49e8
- 思路
- 交换最后得到的结果只有两种,鸡左鸭右,鸭左鸡右
- 在代码中可以把‘C’都全移到左边或者把‘D’全移到左边,去最小者即可
- 代码
#include <iostream> #include <string> using namespace std; int main() { string s; cin >> s; int count = 0; int sumC = 0; int sumD = 0; // 把C往左移 for(int i = 0; i<s.size(); i++) { if(s[i] == 'C'){ sumC += i-count++; } } // 把D往左移 count = 0; for(int i = 0; i < s.size(); i++) { if(s[i] == 'D'){ sumD += i-count++; } } cout << min(sumC, sumD) << endl; return 0; }