901

2014

1.两个栈实现队列进、出、判空

template<class T>
class Queue
{
public:
    //入队
    void Push(const T& data) {
        stack1.push(data);
    }
    //判空
    bool isEmpty() {
        return(stack1.empty() && stack2.empty());
    }
    //出队
    void Pop()
    {
        if (isEmpty()) {
            cout << "this queue is empty" << endl;
            return;
        }
        if (!stack2.empty()) {
            stack2.pop();
        }
        else {
            while (stack1.size() > 0) {
                stack2.push(stack1.top());
                stack1.pop();
            }
            stack2.pop();
        }
    }

2.二元一次方程

#include<iostream>
using namespace std;
typedef struct R {
	float x, y;
};
int main() {
	int a, b, t, c = 0;
	cin >> t;
	R* res = new R[t];
	for (int i = 0; i < t; i++) {
		cin >> a >> b;
		res[c].x = (a + b)*1.0 / 2;
		res[c].y = a * 1.0 - res[c].x;
		c++;
	}
	for (int i = 0; i < t; i++) 
		cout << res[i].x << " " << res[i].y << endl;
	delete[]res;
	return 0;
}

3.子串

#include<iostream>
#include<string>
using namespace std;
bool check(string s, string t) {//s是t子串
	int len_s = s.length(), len_t = t.length();
	for (int i = 0, j = 0; i < len_t; i++,j++) {
		if (t[i] != s[j]) j = -1;
		if (j == len_s - 1) return 1;
	}
	return 0;
}
int main() {
	string s, t;
	getline(cin, s);
	getline(cin, t);
	cout << (check(s, t) ? "yes\n" : "no\n");
	return 0;
}

2017

1.是否排序树

int min = -32876;
bool judge(BiTree T) {
    if (T) {
        judge(T->lchild);
        if (min > T->data) 
            return 0;
        min = T->data;
        judge(T->rchild);
    }
    return 1;
}

2.拆成两个素数

#include<iostream>
#include<math.h>
using namespace std;
bool isPrime(int n) {
    for (int i = 2; i <= sqrt(n); i++)
        if (n % i == 0)
            return 0;
    return 1;
}
int f(int n) {
    int c = 0;
    for (int i = 2; i < n / 2; i++) {
        if (isPrime(i) && isPrime(n - i)) {
            c++;
            //cout << i << " " << n - i << endl;
        }
    }
    return c;
}
int main() {
    int n;
    for (int i = 0; i < 500; i++) {
        cin >> n;
        if (n == 0)break;
        cout << f(n) << endl;
        //isPrime(n) ? cout << "1\n": cout << "0\n";
    }
    return 0;
}

3.密码判断

#include<iostream>
using namespace std;
void check(string s) {
    int len = s.length(), flag[4] = { 0 }, count = 0;
    if (len < 8 || len>16) {
        cout << "NO\n";
        return;
    }
    const char c[] = { '~','!','@','#','$','%','^' };
    for (int j = 0; j < sizeof(c) / sizeof(char); j++) 
        if (s.find(c[j]) != string::npos) {
            flag[3] = 1;
            break;
        }
    for (int i = 0; i < len; i++) {
        if (isupper(s[i]))flag[0] = 1;
        if (islower(s[i]))flag[1] = 1;
        if (isdigit(s[i]))flag[2] = 1;
    }
    for (int k = 0; k < 4; k++) {
        if (count == 3) {
            cout << "YES\n";
            return;
        }
        if (flag[k])count++;
    }
    cout << "NO\n";
    return;
}
int main() {
    int M;
    cin >> M;
    string s;
    for (int i = 0; i < M; i++) {
        cin >> s;
        check(s);
    }
    return 0;
}

2015

1.树根

#include<iostream>
#include<string>
using namespace std;
int fun(string s) {
	if (s.length() == 1)
		return stoi(s);
	else {
		int sum = 0;
		for (int i = 0; i < s.length(); i++)
			sum += s[i] - 48;
		return fun(to_string(sum));
	}
}
int main(){
    string s;
	while (cin>>s){
		if (s == "0")
			break;
		cout << fun(s) << endl;
	}
    return 0;
}

2.单词反转
在这里插入图片描述

#include<iostream> 
#include<string>
#include<vector>
#include<algorithm>
using namespace std;
int main() {
    int n;
    cin >> n;
    getchar();
    string s;
    vector<string>v;
    for (int i = 0; i < n; i++) {
        do {
            cin >> s;
            v.push_back(s);
        } while (getchar()!='\n');
        for (vector<string>::iterator it = v.begin(); it != v.end(); it++) {
            string t = *it;
            reverse(t.begin(), t.end());
            cout << t << " ";
        }
        cout << endl;
        v.clear();
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值