求助,太折磨了
  • 板块CF21A Jabber ID
  • 楼主Weekoder
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/1/2 21:18
  • 上次更新2024/1/3 13:38:29
查看原帖
求助,太折磨了
800884
Weekoder楼主2024/1/2 21:18

求助!我要被折磨死了……

#include <bits/stdc++.h>
using namespace std;
string s;
int sum, cnt;
bool CharCheck(char chr) {
    if (chr >= 'A' && chr <= 'Z'
     || chr >= 'a' && chr <= 'z'
     || chr == '_'
     || chr >= '0' && chr <= '9')
        return 1;
    return 0;
}
int main() {
    cin >> s;
    if (s.find('@') == string::npos) {
        cout << "NO";
        return 0;
    }
    int i = 0;
    for (; i < s.size(); i++) {
        if (s[i] == '@') break;
        if (!CharCheck(s[i])) {
            cout << "NO";
            return 0;
        }
    }
    if (i < 1 || i > 16) {
        cout << "NO";
        return 0;
    }
    i++;
    for (; i < s.size() && s[i] != '/'; i++) {
        sum++;
        if (s[i] == '.') {
            cout << "NO";
            return 0;
        }
        cnt = 0;
        while (i < s.size() && s[i] != '.' && s[i] != '/') {
            if (!CharCheck(s[i])) {
                cout << "NO";
                return 0;
            }
            i++, cnt++;
        }
        if (s[i] == '/')
            break;
        if (cnt < 1 || cnt > 16) {
            cout << "NO";
            return 0;
        }
    }
    if ((sum < 1 || sum > 32) || (cnt < 1 || cnt > 16)) {
        cout << "NO";
        return 0;
    }
    if (s[i] == '/') {
        if (s[i - 1] == '.') {
            cout << "NO";
            return 0;
        }
        i++;
        cnt = 0;
        for (; i < s.size(); i++) {
            cnt++;
            if (!CharCheck(s[i])) {
                cout << "NO";
                return 0;
            }
        }
        if (cnt < 1 || cnt > 16) {
            cout << "NO";
            return 0;
        }
    }
    cout << "YES";
    return 0;
}

请各位大佬救救我吧!

2024/1/2 21:18
加载中...