Felices vacaciones de invierno (cuerda)

Felices vacaciones de invierno (cuerda)

http://113.31.118.120/contest/5

Intercambio de paridad

#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;
}

Punto decimal molesto

#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;
}

Paridad de cuerda

#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;
}

Cadena de poder

#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;
}

Subcadena de palíndromo estadístico

#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 ++) {
    
    
			//回文子串长度为奇数,以s[i]这个字母为对称轴 
			for (int j = 0; i-j>=0 && i+j < len;j ++) {
    
    
				if (s[i-j] == s[i+j]) cnt ++;
				else break;
			}
			 
			//回文子串长度为偶数,以s[i]和s[i+1]之间为对称轴 
			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;
}

Supongo que te gusta

Origin blog.csdn.net/davidliule/article/details/113489502
Recomendado
Clasificación