首页 > 其他分享 >蓝桥杯 单词重排

蓝桥杯 单词重排

时间:2025-01-20 12:58:08浏览次数:3  
标签:单词 排列 重复 字母 蓝桥 重排 字符串 include LANQIAO

问题描述

解题思路

这个问题可以通过计算排列数来解决。由于字符串 "LANQIAO" 由7个不同的字母组成,我们可以使用排列公式 P(n,n)=n! 来计算,其中 n 是字母的数量。但是,由于字符串中存在重复的字母,我们需要对重复的字母进行处理。

在这个问题中,字母 'A' 和 'O' 各出现了两次。因此,我们需要除以 2!×2! 来消除重复的排列。

代码实现

以下是使用C++编写的代码实现:

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

int main() {
    string s = "LANQIAO";
    sort(s.begin(), s.end()); // 先对字符串进行排序
    int count = 0;
    do {
        count++; // 每找到一个排列就计数一次
    } while (next_permutation(s.begin(), s.end())); // 生成下一个排列
    cout << count << endl; // 输出排列数
    return 0;
}

 

总结

这个问题考察了我们对字符串排列和组合的理解。通过使用 next_permutation 函数,我们可以方便地生成字符串的所有排列。同时,我们需要注意到重复字母的存在,并对排列数进行相应的调整。

这个问题的解决方法简单而有效,适用于解决类似问题。通过编程,我们可以快速地得到结果,避免了手动计算的繁琐。这种方法不仅提高了效率,也减少了出错的可能性。

标签:单词,排列,重复,字母,蓝桥,重排,字符串,include,LANQIAO
From: https://blog.csdn.net/makeke123456/article/details/145260270

相关文章

  • 冲刺蓝桥杯之速通vector!!!!!
    文章目录知识点创建增删查改习题1习题2习题3习题4:习题5:知识点C++的STL提供已经封装好的容器vector,也可叫做可变长的数组,vector底层就是自动扩容的顺序表,其中的增删查改已经封装好创建constintN=30;vector<int>a1;//创建叫a1的空的可变长的数组vector<int>a2......
  • 蓝桥杯备赛笔记(九)动态规划(一)
    1.动态规划基础(1)线性DP1)什么是DP(动态规划)DP(动态规划)全称DynamicProgramming,是运筹学的一个分支,是一种将复杂问题分解成很多重叠的子问题,并通过子问题的解得到整个问题的解的算法。在动态规划中有一些概念:状态:就是形如dp[i][j]=val的取值,其中i,j为下标,也是用于描述、......
  • 动态规划——26单词拆分
    这道题用代码随想录的解释有点牵强,第二层for循环和递推公式也没有说明白。代码classSolution{public:boolwordBreak(strings,vector<string>&wordDict){unordered_set<string>set(wordDict.begin(),wordDict.end());//字典单词是物品,s是背包......
  • 备赛蓝桥杯——day4:C++篇
    第二章:C/C++输入输出(上)1.getchar和putchargetchar()和putchar()是属于C语⾔的库函数,C++是兼容C语⾔的,所以C++中只要正确包含头⽂件也可以正常使⽤这两个函数。1.1getchar函数原型:intgetchar(void);getchar()函数返回用户从键盘输入的一个字符(本质是返回他的asc码值),......
  • LeetCode题练习与总结:反转字符串中的单词 Ⅲ -- 557
    一、题目描述给定一个字符串 s ,你需要反转字符串中每个单词的字符顺序,同时仍保留空格和单词的初始顺序。示例1:输入:s="Let'stakeLeetCodecontest"输出:"s'teLekatedoCteeLtsetnoc"示例2:输入:s="MrDing"输出:"rMgniD"提示:1<=s.length<=5*10^......
  • 蓝桥杯单片机基础部分——5、DS18B20温度传感器
    前言好久没有更新关于蓝桥杯单片机相关的模块了,今天更新一下数字温度传感器DS18B20的相关应用单线数字温度计DS1820介绍DS1820数字温度计提供9位(二进制)温度读数,指示器件的温度。信息经过单线接口送入DS1820或从DS1820送出,因此从主机CPU到DSl820仅需一条线(和地线)......
  • 单词搜索(递归)
    题目链接:https://leetcode.cn/problems/word-search/题意:给定二维char数组,询问是否能够有路径来获得给定的字符数组无法改为动态规划表classSolution{public:boolexist(vector<vector<char>>&board,stringword){intn=board.size();intm=boa......
  • 使用标签怎样对一个单词标志缩写呢?
    在前端开发中,要对一个单词进行缩写标记,通常可以使用HTML的<abbr>标签。这个标签用于表示一个缩写或首字母缩略词,并可以通过title属性来提供缩写的完整形式或解释。当用户将鼠标悬停在带有<abbr>标签的文本上时,浏览器会显示title属性中的值作为工具提示。以下是使用<abbr>标签标记......
  • 蜂鸣器与继电器的基本控制(蓝桥杯练习02)
    蜂鸣器正极接电源,给NBUZZ低电平,蜂鸣器鸣叫继电器RELAY-SPDT为线圈,里面有铁芯,给线圈通电(VCC一端为高电平,NRELAY给低电平)使其产生磁场将K1吸合。ULN2003中间连接了一个非门,若左边为1,右边输出则为0。蜂鸣器与继电器电路与前文的led一样,或非门连接着译码器和锁存器,......
  • 蓝桥杯备赛 Day10.2昆虫繁殖
    信息学奥赛一本通(C++版)在线评测系统【题目描述】科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强。每对成虫过x个月产y对卵,每对卵要过两个月长成成虫。假设每个成虫不死,第一个月只有一对成虫,且卵长成成虫后的第一个月不产卵(过x个月产卵),问过z个月以后,共有成......