当前位置: 首页 > news >正文

找凶手,定名次,字符串旋转,杨氏矩阵

1.找凶手问题:

//题目名称:
//猜凶手
//题目内容:
//日本某地发生了一件谋杀案,警察通过排查确定凶手必为4个嫌疑犯的一个。
//以下为4个嫌疑犯的供词:
//A说:不是我
//B说:是C
//C说:是D
//D说:C在胡说
//已知3个人说的是真话,1个人说的是假话。
//请根据这些信息,写一个程序来确定到底谁是凶手

代码实现:

#include<Stdio.h>
int main()
{
    char killer = 0;
    for(killer = 'a';killer<='d';killer++)//循环,将每个人都假设为一次凶手
    {
        if((killer!='a') + (killer=='c') + (killer=='d') + (killer!='d') ==3 )//有三个人说了真话,一个人说了假话,那么四句话加起来的结果应该是3(解题关键!!!)
        {
         printf("killer = %c\n",killer);//只有c满足以上条件,所以只有c是凶手
        }
    }
}

2.定名次:

//解题思路:穷举法,列出每一种可能后再筛选
#include<stdio.h>
int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    int d = 0;
    int e = 0;
    for(a = 1;a<=5;a++)
    {
        for(b = 1;b <= 5;b++)
        {
            for(c = 1;c<=5;c++)
            {
                for(d = 1;d<=5;d++)
                {
                    for(e = 1;e<=5;e++)
                    {
                         if((b==2)+(a==3)==1&&(b==2)+(e==4)==1&&(c==1)+(d==2)==1&&(c==5)+(d==3)==1&&(e==4)+(a==1)==1)//每个人的话都有一半是真的,所以每个人的两句话变为条件加起来的结果是1,且5个人的话都要实现
                         {
                             if(a*b*c*d*e==120)//必须满足5个人的名次的乘积为120,否则就出现并列的情况,不符合题目条件
                             {
                                 printf("a=%d b=%d c=%d d=%d e=%d\n",a,b,c,d,e);
                             }
                         }
                    }    
                }
            }
        }
    }
    
    
    
}

3.字符串旋转

//【题目名称】

//字符串左旋

//【题目内容】

//实现一个函数,可以左旋字符串中的k个字符。

//例如:

//ABCD左旋一个字符得到BCDA

//ABCD左旋两个字符得到CDAB

//方法1:暴力解题法
//解题思路:假设字符串为"abcdef",要实现1个左旋,则先把a提出来放到临时变量中,再把剩下的字符往前移动1个位置,最后再把最后一个字符的位置放上a,
//左旋2个,3个则依此类推

/*#include<stdio.h>
#include<string.h>
char* is_left_move(char*str,int k,int sz)
{
    int i = 0;
    char tmp = 0;
    for(i=0;i<k;i++)//k等于几就说明要进行几次移位
    {
        int j = 0;
        tmp = *str;//字符串的首字符,每次移位后都不一样,所以要放在循环外面
        for(j=0;j<sz-1;j++)
        {
            str[j] = str[j+1];//第一个字符取出,其余字符向前移动1位
        }
        j--;//最后一次循环结束时i++,这次++时多余的,如果不减去,则str[j+1]就变成了str[4],越界了
        str[j+1] = tmp;
    }
    
    return str;
}
int main()
{
    char arr[] = "ABCD";
    int k = 0;
    int sz = strlen(arr);
    scanf("%d",&k);//左旋k个字符
    is_left_move(arr,k,sz);//将arr与k传入函数
    printf("%s\n",arr);
    return 0;
}*/

4.【题目名称】

字符串旋转结果

【题目内容】

写一个函数,判断一个字符串是否为另外一个字符串旋转之后的字符串。

例如:给定s1 =AABCD和s2 = BCDAA,返回1

给定s1=abcd和s2=ACBD,返回0.

AABCD左旋一个字符得到ABCDA

AABCD左旋两个字符得到BCDAA

AABCD右旋一个字符得到DAABC

//解题思路:利用strncat函数(字符串拼接函数),将arr自身拷贝一份,然后再利用字符串查找函数strstr(找得到就返回子串的首字符地址,找不到就返回NULL)即可
#include<stdio.h>
#include<string.h>
int is_left_move(char*str1,char*str2)
{
    int len1 = strlen(str1);
    int len2 = strlen(str2);
    if(len1!=len2)//先判断两个字符串的长度是否相等,如果不想等,则一定不是子串
    {
        return 0;
    }
    strncat(str1,str1,6);//给arr1后面再加个arr1
    char*cy = strstr(str1,str2);//指针接收strstr返回的地址,若strstr没找到,则返回空指针,则说明不是子串
    if(cy==NULL)
    {
        return 0;
    }
    else
    return 1;
    
    
    
    
    
    
}
int main()
{
    char arr1[] = "ABCDEF";
    char arr2[] = "DEFABC";
    int ret = is_left_move(arr1,arr2);//将两个数组传到函数里面,返回值设置为整数
    if(ret == 1)
    {
        printf("Yes\n");//是子串
    }
    if(ret == 0)
    {
        printf("No\n");//不是子串
    }
}

5.1//题目名称:
//杨氏矩阵
//题目内容:
//有一个数字矩阵,矩阵的每行从左到右是递增的,矩阵从上到下是递增的,请编写程序在这样的矩阵中查找某i个数字不是矩阵中的数字
//要求:时间复杂度小于o(N)

//时间复杂度小于o(N)
//假设矩阵为:
//1 2 3
//3 4 5
//4 5 6
//想要找到数字6,那么至少得把数组遍历,则需要找9次,此时o(N)就等于9,所以这种算法不满足要求

//解题思路:观察矩阵的右上角数字3,是一行中最大的数,也是一列中最小的数,假设给一个数字k,若3<k,则一行中没有比k更大的数
//则跳到下一行,若3>k,则说明一列中没有比k更小的数,则跳到前一列,左下角的数字也可以以此类推

//1.利用右上角数字的解法
/*#include<Stdio.h>
int find(int arr[3][3],int row,int lin,int k)
{
    int x = 0;//右上角数字的行坐标
    int y = lin-1;//右上角数字的列坐标
    while(x<=2&&y>=0)//行坐标必须<=2(三行),列坐标必须>=0
    {
            if(arr[x][y]<k)
    {
        x++;
    }
    else if(arr[x][y]>k)
    {
        y--;
    }
    else
    {
    return 1;    
    }
    
    }
    return 0;

}
int main()
{
    //int row = 3;
    //int lin = 3;
    int arr[3][3] = {{1,2,3},{3,4,5},{4,5,6}};
    int k = 0;
    scanf("%d",&k);
    int ret = find(arr,3,3,k);
    if(ret==1)
    {
        printf("找到了");
    }
    if(ret == 0 )
    {
        printf("找不到");
    }
    return 0;
}*/

5.2:

//2.利用左下角数字的解法
#include<Stdio.h>
int find(int arr[3][3],int row,int lin,int k)
{
    int x = row-1;//左下角数字的行坐标
    int y = 0;//左下角数字的列坐标
    while(x<=2&&y>=0)//行坐标必须<=2(三行),列坐标必须>=0
    {
            if(arr[x][y]<k)
    {
        y++;
    }
    else if(arr[x][y]>k)
    {
        x--;
    }
    else
    {
    return 1;    
    }
    
    }
    return 0;

}
int main()
{
    int arr[3][3] = {{1,2,3},{3,4,5},{4,5,6}};
    int k = 0;
    scanf("%d",&k);
    int ret = find(arr,3,3,k);
    if(ret==1)
    {
        printf("找到了");
    }
    if(ret == 0 )
    {
        printf("找不到");
    }
    return 0;
}

相关文章:

找凶手,定名次,字符串旋转,杨氏矩阵

1.找凶手问题&#xff1a; //题目名称&#xff1a; //猜凶手 //题目内容&#xff1a; //日本某地发生了一件谋杀案&#xff0c;警察通过排查确定凶手必为4个嫌疑犯的一个。 //以下为4个嫌疑犯的供词&#xff1a; //A说&#xff1a;不是我 //B说&#xff1a;是C //C说&#xff…...

Python 进阶指南(编程轻松进阶):十四、实践项目

原文&#xff1a;http://inventwithpython.com/beyond/chapter14.html 到目前为止&#xff0c;这本书已经教会了你编写可读的 Python 风格代码的技巧。让我们通过查看两个命令行游戏的源代码来实践这些技术&#xff1a;汉诺塔和四人一排。 这些项目很短&#xff0c;并且基于文…...

Redis的五种数据类型及应用场景

Redis是一个开源的key-value数据库。 五种数据类型 String&#xff0c;List&#xff0c; Set&#xff0c;SortedSet&#xff0c;Hash List类型可以存储多个String。 Set类型可以存储不同的String。 SortedSet可以存储String的排序。 Hash可以存储多个key-value对。 String …...

c++List的详细介绍

cList详细使用 write in front 作者&#xff1a; 不进大厂不改名 专栏&#xff1a; c 作者简介&#xff1a;大一学生 希望能向其他大佬和同学学习&#xff01; 本篇博客简介&#xff1a;本文主要讲述了一种新容器list的使用方法&#xff0c;相信你在学了后&#xff0c;能够加深…...

Heap堆的升序排序

在heap堆中&#xff0c;大根堆是一种特殊的堆&#xff0c;它满足下列性质&#xff1a;对于任意一个非叶子节点i&#xff0c;其左右子节点的值均小于等于它本身的值。 在大根堆中&#xff0c;堆顶元素永远是值最大的元素&#xff0c;所以将堆顶元素不断取出来&#xff0c;就相当…...

小程序开发收费价目表

小程序作为一种新兴应用形式&#xff0c;正在逐渐成为企业和个人推广、运营的重要手段。然而&#xff0c;小程序开发的价格因项目规模和复杂程度差异较大&#xff0c;令不少人望而却步。本文将从小程序开发的相关因素入手&#xff0c;探讨小程序开发的价格范围和算法。 一、小…...

Dubbo服务暴露步骤详解

文章目录Dubbo服务暴露步骤详解背景介绍理论知识讲解什么是服务暴露&#xff1f;Dubbo 服务暴露的基本原理操作步骤具体实现环境准备实现服务接口实现服务提供者配置 Dubbo 服务提供者启动服务提供者实现服务消费者配置 Dubbo 服务消费者测试总结Dubbo服务暴露步骤详解 背景介…...

第十四届蓝桥杯编程题部分代码题解

C. 冶炼金属 最大值就是取 a/ba / ba/b 的最小值&#xff0c;最小值就是二分找到满足 mid∗(bi1)≥aimid * (b_i 1) ≥ a_imid∗(bi​1)≥ai​ 的最小值 #include<bits/stdc.h> #define int long long #define x first #define y second using namespace std;void sol…...

统一结果封装异常处理

统一结果封装&异常处理2&#xff0c;统一结果封装2.1 表现层与前端数据传输协议定义2.2 表现层与前端数据传输协议实现2.2.1 环境准备2.2.2 结果封装步骤1:创建Result类步骤2:定义返回码Code类步骤3:修改Controller类的返回值步骤4:启动服务测试3&#xff0c;统一异常处理3…...

数字藏品平台的发展趋势是什么?

1、数字藏品平台具体内容生产模式将在PGC&#xff08;专业生产制造具体内容&#xff09;方式向PUGC&#xff08;技术专业用户生产内容&#xff09;方式变化。 目前&#xff0c;中国热门的数字藏品平台都在PGC模式中持续发展的&#xff0c;而国外流行NFT平台则比较多选用UGC&am…...

Vue3对话框(Dialog)

Vue2对话框&#xff08;Dialog&#xff09; 可自定义设置以下属性&#xff1a; 标题&#xff08;title&#xff09;&#xff0c;类型&#xff1a;string | slot&#xff0c;默认 提示 内容&#xff08;content&#xff09;&#xff0c;类型&#xff1a;string | slot&#xf…...

【深度强化学习】(5) DDPG 模型解析,附Pytorch完整代码

大家好&#xff0c;今天和各位分享一下深度确定性策略梯度算法 (Deterministic Policy Gradient&#xff0c;DDPG)。并基于 OpenAI 的 gym 环境完成一个小游戏。完整代码在我的 GitHub 中获得&#xff1a; https://github.com/LiSir-HIT/Reinforcement-Learning/tree/main/Mod…...

unity,Color.Lerp函数

介绍 Color.Lerp函数是Unity引擎中的一个静态函数&#xff0c;用于在两个颜色值之间进行线性插值&#xff0c;从而实现颜色渐变效果 方法 Color.Lerp函数是Unity引擎中的一个静态函数&#xff0c;用于在两个颜色值之间进行线性插值&#xff0c;从而实现颜色渐变效果。该函数的…...

洛谷P8799 [蓝桥杯 2022 国 B] 齿轮 C语言/C++

[蓝桥杯 2022 国 B] 齿轮 题目描述 这天&#xff0c;小明在组装齿轮。 他一共有 nnn 个齿轮&#xff0c;第 iii 个齿轮的半径为 rir_{i}ri​, 他需要把这 nnn 个齿轮按一定顺序从左到右组装起来&#xff0c;这样最左边的齿轮转起来之后&#xff0c;可以传递到最右边的齿轮&a…...

景区在线售票系统功能开发介绍

目前游客线上订票已经普及&#xff0c;景区开通线上购票渠道&#xff0c;方便游客购票&#xff0c;对于还没有开通线上购票的景区来说&#xff0c;需要提前了解一下景区线上售票系统的一些功能&#xff0c;下面给大家详细介绍一下景区在线售票需要哪些功能。 1、在线售票 包含门…...

webService的底层调用方式

webservice中采用协议Http&#xff0c;是指什么意思 WebService使用的是 SOAP (Simple Object Access Protocol)协议 Soap协议只是用来封装消息用的。封装后的消息你可以通过各种已有的协议来传输&#xff0c;比如http,tcp/ip,smtp,等等&#xff0c;你甚至还一次用自定义的协议…...

关于文件的一些小知识下

&#x1f34d;个人主页&#x1f34d;:&#x1f51c;勇敢的小牛儿&#x1f6a9; &#x1f531;推荐专栏&#x1f531;&#xff1a;C语言知识点 ⚠️座右铭⚠️&#xff1a;敢于尝试才有机会 &#x1f412;今日鸡汤&#x1f412;&#xff1a; 你受的苦 吃的亏 担的责 扛的罪 忍的…...

使用Cheat Engine与DnSpy破解Unity游戏

题目连接&#xff1a; https://play.picoctf.org/practice/challenge/361?originalEvent72&page3我们是windows系统&#xff0c;所以点击windows game下载游戏 双击运行pico.exe 屏幕上方的一串英文是叫我们找flag&#xff0c;我在这个小地图里走来走去也没flag&#xff…...

溯源取证-内存取证基础篇

使用工具&#xff1a; volatility_2.6_lin64_standalone 镜像文件&#xff1a; CYBERDEF-567078-20230213-171333.raw 使用环境&#xff1a; kali linux 2022.02 我们只有一个RAW映像文件&#xff0c;如何从该映像文件中提取出我们想要的东西呢&#xff1f; 1.Which volatili…...

Leetcode.100 相同的树

题目链接 Leetcode.100 相同的树 easy 题目描述 给你两棵二叉树的根节点 p和 q&#xff0c;编写一个函数来检验这两棵树是否相同。 如果两个树在结构上相同&#xff0c;并且节点具有相同的值&#xff0c;则认为它们是相同的。 示例 1&#xff1a; 输入&#xff1a;p [1,2,3…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

Oracle查询表空间大小

1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

遍历 Map 类型集合的方法汇总

1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

c++ 面试题(1)-----深度优先搜索(DFS)实现

操作系统&#xff1a;ubuntu22.04 IDE:Visual Studio Code 编程语言&#xff1a;C11 题目描述 地上有一个 m 行 n 列的方格&#xff0c;从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子&#xff0c;但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...

生成 Git SSH 证书

&#x1f511; 1. ​​生成 SSH 密钥对​​ 在终端&#xff08;Windows 使用 Git Bash&#xff0c;Mac/Linux 使用 Terminal&#xff09;执行命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" ​​参数说明​​&#xff1a; -t rsa&#x…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南

1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;使用DevEco Studio作为开发工具&#xff0c;采用Java语言实现&#xff0c;包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...

云原生玩法三问:构建自定义开发环境

云原生玩法三问&#xff1a;构建自定义开发环境 引言 临时运维一个古董项目&#xff0c;无文档&#xff0c;无环境&#xff0c;无交接人&#xff0c;俗称三无。 运行设备的环境老&#xff0c;本地环境版本高&#xff0c;ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...

C++ 设计模式 《小明的奶茶加料风波》

&#x1f468;‍&#x1f393; 模式名称&#xff1a;装饰器模式&#xff08;Decorator Pattern&#xff09; &#x1f466; 小明最近上线了校园奶茶配送功能&#xff0c;业务火爆&#xff0c;大家都在加料&#xff1a; 有的同学要加波霸 &#x1f7e4;&#xff0c;有的要加椰果…...