寒假欢乐赛(字符串)
http://113.31.118.120/contest/5
奇偶位互换
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
while (n --) {
string s;
cin >> s;
for (int i = 0; i < s.size(); i += 2) {
cout << s[i+1] << s[i];
}
cout << endl;
}
return 0;
}
讨厌的小数点
#include <iostream>
using namespace std;
int main() {
int t;
cin >> t;
while (t --) {
string s;
int n;
cin >> s >> n;
for (int i = 0; i < s.size(); i ++) {
if (s[i] == '.') {
if (i+n < s.size()) cout << s[i+n] << endl;
else cout << 0 << endl;
}
}
}
return 0;
}
字符串的奇偶性
#include <iostream>
using namespace std;
int main() {
char ch;
int cnt = 0;
while (cin >> ch) {
if (ch == '#') break;
if (ch == '1') cnt ++, cout << ch;
else if (ch == '0') cout << ch;
else if (ch == 'e') {
if (cnt % 2 == 1) cout << 1 << endl;
else cout << 0 << endl;
cnt = 0;
}
else if (ch == 'o') {
if (cnt % 2 == 0) cout << 1 << endl;
else cout << 0 << endl;
cnt = 0;
}
}
return 0;
}
幂字符串
#include <iostream>
using namespace std;
string s;
int len;
bool f(int x) {
string s1 = s.substr(0, x);
for (int i = x; i < len; i += x) {
string s2 = s.substr(i, x);
if (s1 != s2) return false;
}
return true;
}
int main() {
while (cin >> s) {
if (s == ".") break;
len = s.size();
for (int i = len; i >= 1; i --) {
if (len%i == 0 && f(len/i) == true) {
cout << i << endl;
break;
}
}
}
return 0;
}
统计回文子串
#include <cstdio>
#include <iostream>
using namespace std;
string s;
int len, cnt;
int main() {
while (cin >> s) {
int len = s.size();
cnt = 0;
for (int i = 0; i < len; i ++) {
for (int j = 0; i-j>=0 && i+j < len;j ++) {
if (s[i-j] == s[i+j]) cnt ++;
else break;
}
for (int j = 0; i-j>=0 && i+1+j < len;j++) {
if (s[i-j] == s[i+1+j]) cnt ++;
else break;
}
}
cout << cnt << endl;
}
return 0;
}