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

【3-12 toupper(ch) tolower(ch) 和ASCII码 和全排列】

前言 ASCII中 A 。。。。a;

toupper(ch) tolower(ch) 和ASCII码

#include <bits/stdc++.h>
using namespace std;
//A   ....a
char changeA2toa(char ch)
{
	if(islower(ch)) ch=toupper(ch);
	else if(isupper(ch)) ch=tolower(ch);
	return ch;
}
char change_a2toA(char ch)
{
	if(ch<='z'&&ch>='a')   ch=ch-('a'-'A');
	else	if(ch<='Z'&&ch>='A')   ch=ch+('a'-'A');
	return ch;
}

int main() {
    string n;
    cin>>n;
    for(auto &i:n){
     //i=changeA2toa(i);
     i=change_a2toA(i);
    }
    cout<<n<<'\n';
    cout<<'A'-'a'<<'\n';//-32

    return 0;
}

全排列

  1. next_permutation()函数:这个函数用于生成给定序列的下一个字典序排列。如果当前序列已经是最大的排列,则会将其变为最小的排列。

  2. prev_permutation()函数:这个函数用于生成给定序列的上一个字典序排列。如果当前序列已经是最小的排列,则会将其变为最大的排列。

这两个函数通常用于处理排列和组合问题。

捂脸,这好无聊

AI:

next_permutation()prev_permutation() 函数在处理排列和组合问题时具有很高的价值,主要体现在以下几个方面:

  1. 生成所有排列:这两个函数可以用来生成一个序列的所有可能排列。例如,在解决全排列问题时,可以使用这两个函数来遍历所有可能的排列组合。

  2. 优化算法:在某些情况下,使用 next_permutation()prev_permutation() 可以简化算法的实现。例如,在解决旅行商问题(TSP)等组合优化问题时,可以使用这两个函数来生成和评估不同的解。

  3. 查找特定排列:有时候,我们需要找到满足特定条件的排列。使用 next_permutation()prev_permutation() 可以方便地在排列空间中搜索,直到找到满足条件的排列。

  4. 排列排序:这两个函数可以用于对排列进行排序。例如,可以使用 next_permutation() 将排列按字典序排序,或者使用 prev_permutation() 将排列按逆字典序排序。

  5. 组合数学:在组合数学中,排列和组合是基本概念。next_permutation()prev_permutation() 提供了一种简单的方法来生成和操作这些排列和组合。

总之,next_permutation()prev_permutation() 函数在处理排列和组合问题时非常有用,可以简化算法实现,提高代码可读性和效率。

例子

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
    std::vector<int> arr = {1, 2, 3};

    // 使用 next_permutation
    std::cout << "Next Permutations:" << std::endl;
    do {
        for (int num : arr) {
            std::cout << num << " ";
        }
         cout << std<<'\n';
    } while (std::next_permutation(arr.begin(), arr.end()));

    arr = {3, 2, 1};

    // 使用 prev_permutation
    std::cout << "Prev Permutations:" << std::endl;
    do {
        for (int num : arr) {
            std::cout << num << " ";
        }
        std::cout << std::endl;
    } while (std::prev_permutation(arr.begin(), arr.end()));

    return 0;
}

在这里插入图片描述


文章转载自:
http://bark.zekgq.cn
http://behove.zekgq.cn
http://anguilliform.zekgq.cn
http://brer.zekgq.cn
http://broadsword.zekgq.cn
http://buildable.zekgq.cn
http://ballooning.zekgq.cn
http://acorn.zekgq.cn
http://bereaved.zekgq.cn
http://beethovenian.zekgq.cn
http://bharat.zekgq.cn
http://autogenous.zekgq.cn
http://cenotaph.zekgq.cn
http://bicron.zekgq.cn
http://behaviour.zekgq.cn
http://addresser.zekgq.cn
http://cenotaph.zekgq.cn
http://apartotel.zekgq.cn
http://altercate.zekgq.cn
http://bloomy.zekgq.cn
http://chlorpicrin.zekgq.cn
http://annuli.zekgq.cn
http://caff.zekgq.cn
http://cannonry.zekgq.cn
http://adiaphorous.zekgq.cn
http://antienzymatic.zekgq.cn
http://brawl.zekgq.cn
http://analyst.zekgq.cn
http://chafing.zekgq.cn
http://america.zekgq.cn
http://www.dtcms.com/a/64574.html

相关文章:

  • Android Retrofit 框架适配器模块深入源码分析(五)
  • Vmware Ubuntu 22.04 连接移动硬盘
  • 成为超人 21:超人怎么学?技能的学习,如编程
  • 【从零开始学习计算机科学】编译原理(五)语法制导翻译
  • grunt构建工具:scss转css
  • JavaWeb-servlet6中request和response的使用
  • 第J2周:ResNet50V2算法实现01(Tensorflow硬编码版)
  • ubuntu2404 安装 过程中 手动设置网络
  • 《深度剖析:鸿蒙系统下智能NPC与游戏剧情的深度融合》
  • 今天六大热点爆料
  • Redis 数据结构详解
  • 设计模式-结构型模式-装饰器模式
  • 信奥赛CSP-J复赛集训(模拟算法专题)(10):P2356 弹珠游戏
  • Linux:Ubuntu server 24.02 上搭建 ollama + dify
  • 【Golang】第三弹----运算符
  • 数据类设计_图片类设计之3_半规则图类设计(前端架构基础)
  • 【贪心算法4】
  • AI 变革药物研发:深势科技的云原生实践之路
  • 【每日学点HarmonyOS Next知识】tab拦截、组件方法做参数、自定义组件链式调用、多次观察者监听、横竖屏切换
  • C++20中的`std::endian`:深入理解大端/小端/本地字节序
  • wps word 正文部分段前段后间距调整无用
  • halcon机器人视觉(四)calibrate_hand_eye_stationary_3d_sensor
  • Pytorch系列教程:可视化Pytorch模型训练过程
  • 【WRF-Urban】报错解析:ZDC + Z0C + 2m is larger than the 1st WRF level
  • react实现一个列表的拖拽排序(react实现拖拽)
  • 如何在DBeaverSQL执行界面显示行号
  • 力扣hot100_二叉树
  • 【JavaWeb】快速入门——HTMLCSS
  • 机器人领域专业名词汇总
  • C++学习——顺序表(六)