首页 > 编程语言 >每日一道算法题

每日一道算法题

时间:2024-06-16 13:31:54浏览次数:22  
标签:str 16 每日 len 一道 算法 && include void

题目

密码验证合格程序_牛客题霸_牛客网 (nowcoder.com)

C语言

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>


void fun_2024_6_16(void)
{
	char str[128] = { 0 };
	int len;
	int a = 0, A = 0,d=0,_=0,sub=0;
	while (scanf("%s", str) == 1)
	{
		//printf("%s", str);
		len = strlen(str);
		if (len <= 8)
		{
			printf("NG\n");
			continue;
		}
		for(int i = 0; i < len; i++)
		{
			if (str[i] >= 'a' && str[i] <= 'z') a = 1;
			else if (str[i] >= 'A' && str[i] <= 'Z')A = 1;
			else if (str[i] >= '0' && str[i] <= '9')d = 1;
			else _ = 1;
            //判断是否有重复子串
			if (i < len - 2)
			{
				char s[4] = {0};
				s[0] = str[i];
				s[1] = str[i + 1];
				s[2] = str[i + 2];
				if (strstr(str+i+3,s)!=NULL)
				{
					printf("NG\n");
					sub = 1;
					break;
				}
				
			}

		}
		if (a + A + d + _ < 3 && !sub)
		{
			printf("NG\n");
			continue;
		}
		else if(a + A + d + _ >=3&&!sub)
			printf("OK\n");
	}
}

int main() {
    fun_2024_6_16();
    return 0;
}

C++

#include <iostream>
#include <string>
using namespace std;

void fun_2024_6_16(void) {
    string str;
    while (getline(cin, str)) {
        //cout << str;
        bool noSub = false;
        int len = str.size();
        if (len <= 8) {
            cout << "NG" << endl;
            continue;
        }
        for (int i = 0; i < len-6; i++) {
            string subS;
            subS = str.substr(i, 3);
            if(int(str.find(subS,i+3))!=-1)
            {
                noSub = true;
                break;
            }
        }
        if (noSub) {
            cout << "NG" << endl;
            break;
        }
        int a = 0, A = 0, d = 0, _ = 0;
        for (int i = 0; i < len; i++) {
            if (str[i] >= 'a' && str[i] <= 'z') a = 1;
            else if (str[i] >= 'A' && str[i] <= 'Z') A = 0;
            else if (str[i] >= '0' && str[i] <= '9') d = 1;
            else _ = 1;
        }
        if (a + A + d + _ < 3) cout << "NG" << endl;
        else cout << "OK" << endl;

    }
}

int main() {
    fun_2024_6_16();
    return 0;
}

Python

def fun_2024_6_16(s):
    if len(s)<=8:
        return 'NG'

    a=0
    A=0
    d=0
    _=0

    for i,e in enumerate(s):
        if s[i:i+3] in s[i+3:]:  # 不用担心越界
            return 'NG'
        if e.islower():
            a=1
        elif e.isupper():
            A=1
        elif e.isdigit():
            d=1
        else:
            _=1

    if(a+A+d+_<3):
        return 'NG'
    return 'OK'
while True:
    try:
        s=input()
        print(fun_2024_6_16(s))
    except:
        break

标签:str,16,每日,len,一道,算法,&&,include,void
From: https://blog.csdn.net/weixin_65816128/article/details/139716138

相关文章

  • 基于K最近邻算法在二分类和回归分析中的应用
    目录前言:案例一、K近邻算法在二分类中的应用1.生成训练集2.用KNN算法拟合这些数据  4.验证KNN算法的分类结果案例二、K近邻算法在多分类中的应用1.生成多分类任务数据集2.用KNN算法拟合这些数据  5.验证KNN算法的分类结果 案例三K近邻算法在回归分析中的应用 1......
  • 华为OD刷题C卷 - 每日刷题33(小华最多能得到多少克黄金,智能成绩表)
    1、(小华最多能得到多少克黄金):这段代码是解决“小华最多能得到多少克黄金”的问题。它提供了一个Java类Main,其中包含main方法和dfs方法,以及辅助变量和getDigitSum方法,用于计算小华在地图上能收集到的最多黄金数量。main方法首先读取地图的行数m、列数n和数位之和阈值k。然......
  • 华为OD刷题C卷 - 每日刷题32(执行任务赚积分,计算三叉搜索树的高度)
    1、(执行任务赚积分):这段代码是解决“执行任务赚积分”的问题。它提供了一个Java类Main,其中包含main方法和getResult方法,用于计算在有限的时间内,处理任务可以获得的最多积分。main方法首先读取任务数量n和可用于处理任务的时间t,然后读取每个任务的最晚处理时间限制和积分值,......
  • 华为OD刷题C卷 - 每日刷题31(园区参观路径,围棋的气)
    1、(园区参观路径):这段代码是解决“园区参观路径”的问题。它提供了一个Java类Main,其中包含main方法和getResult方法,以及一个未使用的dfs方法,用于计算从园区起点到终点的不同参观路径数量。main方法首先读取园区的长和宽,然后读取园区的布局信息,其中0表示可以参观,1表示不能参......
  • 华为OD刷题C卷 - 每日刷题30(小明找位置,分隔均衡字符串)
    1、(小明找位置):这段代码是解决“小明找位置”的问题。它提供了一个Java类Main,其中包含main方法和getResult方法,用于帮助小明快速找到他在排队中应该站的位置。main方法首先读取已排列好的小朋友的学号数组和小明的学号,然后调用getResult方法并打印小明应该站的位置。getRe......
  • MATLAB算法实战应用案例精讲-【数模应用】事后多重比较(附python、MATLAB和R语言代码实
    目录几个高频面试题目事后检验,多重比较,简单效应分析有什么区别?事后多重对比如何使用?算法原理SPSSAU疑难解惑提示‘数据质量异常’如何解决?如何做Dunnett法事后多重比较?方差分析事后多重比较提供‘字母标记法!’?关于方差分析时的效应量?字母标记法时没有输出结果?......
  • GB | 华中农大焦文标团队开发适用于植物基因组的基于图形的集成式分型算法
    今年4月,华中农业大学焦文标团队在GenomeBiology上发表论文:Acomprehensivebenchmarkofgraph‑basedgeneticvariantgenotypingalgorithmsonplantgenomesforcreatinganaccurateensemblepipeline,主要研究了基于图谱的植物基因组变异基因分型算法,并创建了一个准确的......
  • 最短路径问题——Floyd算法,dijkstra算法
    7-16最短路径算法(Floyd-Warshall)在带权有向图G中,求G中的任意一对顶点间的最短路径问题,也是十分常见的一种问题。解决这个问题的一个方法是执行n次迪杰斯特拉算法,这样就可以求出每一对顶点间的最短路径,执行的时间复杂度为O(n3)。而另一种算法是由弗洛伊德提出的,时间复杂度......
  • 决策树算法:揭示数据背后的决策逻辑
    目录一决策树算法原理特征选择信息增益信息增益比基尼指数树的构建树的剪枝预剪枝后剪枝二决策树算法实现一使用决策树进行分类数据预处理构建决策树模型二使用决策树进行回归数据预处理构建决策树回归模型三决策树算法的优缺点优点缺点四决策树的改......
  • K-均值聚类算法:原理、应用及实战代码示例
    摘要K-均值聚类算法是数据科学中的一个基础而强大的工具,用于将数据点分组成不同的簇。本文不仅介绍了K-均值聚类算法的基本原理和优缺点,还提供了Python代码示例,展示如何在实际数据集上应用这一算法。关键词K-均值聚类,无监督学习,Python,数据挖掘目录引言K-均值聚类算法原理......