I - Playing With Strings(回文串)

2023-11-07

I - Playing With Stringshttps://vjudge.csgrandeur.cn/problem/Gym-101020I

丹尼和迈克是两个孩子,他们整天玩游戏,当他们找不到游戏玩的时候,他们就发明一个游戏。有一个小时左右到达学校,因为他们爱玩串丹尼发明了一个游戏,谁是第一个形成回文字符串,用这个字符串的所有字母,根据以下示例规则:1-玩家可以重新排列字母组成一个字符串。2-所形成的字符串必须是回文,并且使用给定字符串的所有字母。3-如果有多个字符串,选择字典序最小的字符串。例如:字符串是“abacb”玩家可以形成:“abcba”和“bacab”,但“abcba”是字典序最小的。迈克让你写一个程序来计算回文字符串,这样他就可以打败丹尼了。

输入

您的程序将在一个或多个测试用例上进行测试。输入的第一行将是单个整数T,测试用例的数量(1≤T≤1000)。每一行的测试用例包含一个字符串,字符串的长度不超过1000个小写英文字母。

输出

对于每个测试用例,根据上面的规则打印一行包含字典序最小的回文字符串。如果没有这样的字符串打印"impossible"

思路

记录每个字母出现的次数,如果有两个及其以上种类的字母的数量是奇数,就不可能形成回文串,如果有一个是奇数,那么把其中一个放在中间(当然左右两边要对称),这样就可以形成回文串。

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int t,n;
    char a[1010];
    cin>>t;
    while(t--)
    {
        cin>>a;
        n=strlen(a);
        int b[150]={0};
        for(int i=0;i<n;i++)
        {
            b[a[i]]++;//记录每个字母出现的数量
        }
        int c=0,flag=0;
        for(int i='a';i<='z';i++)
        {
            if(b[i]%2!=0)
            {
                flag=i;//中间需要打印的字母
                c++;//出现奇数的个数
            }
        }
        if(c>1)
            cout<<"impossible"<<endl;
        else
        {
            for(int i='a';i<='z';i++)//打印左边
            {
                for(int j=0;j<b[i]/2;j++)
                {
                    printf("%c",i);
                }
                b[i]=b[i]/2;
            }
            if(c==1)//打印中间
                printf("%c",flag);
            for(int i='z';i>='a';i--)//打印右边
            {
                for(int j=0;j<b[i];j++)
                {
                    printf("%c",i);
                }
            }
            cout<<endl;
        }
    }
}
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int t;
    string s;
    scanf("%d",&t);
    while(t--)
    {
        int b[150]={0},flag,c=0;
        cin>>s;
        for(int i=0;i<s.size();i++)
        {
            b[s[i]]++;
        }
        for(int i='a';i<='z';i++)
        {
            if(b[i]%2)
            {
                c++;
                flag=i;
            }
        }
        if(c>1)
            printf("impossible\n");
        else
        {
            for(int i='a';i<='z';i++)
            {
                for(int j=0;j<b[i]/2;j++)
                {
                    printf("%c",i);
                }
            }
            if(c==1)
                printf("%c",flag);
            for(int i='z';i>='a';i--)
            {
                for(int j=0;j<b[i]/2;j++)
                {
                    printf("%c",i);
                }
            }
        printf("\n");
        }
    }
}
//2022/8/16

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

I - Playing With Strings(回文串) 的相关文章

  • 从父类调用子类方法

    a doStuff 方法是否可以在不编辑 A 类的情况下打印 B did stuff 如果是这样 我该怎么做 class Program static void Main string args A a new A B b new B a
  • 如何在列表框项目之间画一条线

    我希望能够用水平线分隔列表框中的每个项目 这只是我用于绘制项目的一些代码 private void symptomsList DrawItem object sender System Windows Forms DrawItemEvent
  • 实时服务器上的 woff 字体 MIME 类型错误

    我有一个 asp net MVC 4 网站 我在其中使用 woff 字体 在 VS IIS 上运行时一切正常 然而 当我将 pate 上传到 1and1 托管 实时服务器 时 我得到以下信息 网络错误 404 未找到 http www co
  • 当 contains() 工作正常时,xpath 函数ends-with() 工作时出现问题

    我正在尝试获取具有以特定 id 结尾的属性的标签 like span 我想获取 id 以 国家 地区 结尾的跨度我尝试以下xpath span ends with id Country 但我得到以下异常 需要命名空间管理器或 XsltCon
  • C 预处理器库

    我的任务是开发源分析工具C程序 并且我需要在分析本身之前预处理代码 我想知道什么是最好的图书馆 我需要一些重量轻 便于携带的东西 与其推出自己的 为什么不使用cpp这是的一部分gcc suite http gcc gnu org onlin
  • Cython 和类的构造函数

    我对 Cython 使用默认构造函数有疑问 我的 C 类 Node 如下 Node h class Node public Node std cerr lt lt calling no arg constructor lt lt std e
  • 在 ASP.NET Core 3.1 中使用包含“System.Web.HttpContext”的旧项目

    我们有一些用 Net Framework编写的遗留项目 应该由由ASP NET Core3 1编写的API项目使用 问题是这些遗留项目正在使用 System Web HttpContext 您知道它不再存在于 net core 中 现在我们
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • C# 中的递归自定义配置

    我正在尝试创建一个遵循以下递归结构的自定义配置部分
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • 如何将单个 char 转换为 int [重复]

    这个问题在这里已经有答案了 我有一串数字 例如 123456789 我需要提取它们中的每一个以在计算中使用它们 我当然可以通过索引访问每个字符 但是如何将其转换为 int 我研究过 atoi 但它需要一个字符串作为参数 因此 我必须将每个字
  • Qt表格小部件,删除行的按钮

    我有一个 QTableWidget 对于所有行 我将一列的 setCellWidget 设置为按钮 我想将此按钮连接到删除该行的函数 我尝试了这段代码 它不起作用 因为如果我只是单击按钮 我不会将当前行设置为按钮的行 ui gt table
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at
  • 将 xml 反序列化为类,list<> 出现问题

    我有以下 XML
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • C++ fmt 库,仅使用格式说明符格式化单个参数

    使用 C fmt 库 并给定一个裸格式说明符 有没有办法使用它来格式化单个参数 example std string str magic format 2f 1 23 current method template
  • 需要哪个版本的 Visual C++ 运行时库?

    microsoft 的最新 vcredist 2010 版 是否包含以前的版本 2008 SP1 和 2005 SP1 还是我需要安装全部 3 个版本 谢谢 你需要所有这些
  • 如何让Gtk+窗口背景透明?

    我想让 Gtk 窗口的背景透明 以便只有窗口中的小部件可见 我找到了一些教程 http mikehearn wordpress com 2006 03 26 gtk windows with alpha channels https web
  • 如何使用 std::string 将所有出现的一个字符替换为两个字符?

    有没有一种简单的方法来替换所有出现的 in a std string with 转义 a 中的所有斜杠std string 完成此操作的最简单方法可能是boost字符串算法库 http www boost org doc libs 1 46
  • 使用按位运算符相乘

    我想知道如何使用按位运算符将一系列二进制位相乘 但是 我有兴趣这样做来查找二进制值的十进制小数值 这是我正在尝试做的一个例子 假设 1010010 我想使用每个单独的位 以便将其计算为 1 2 1 0 2 2 1 2 3 0 2 4 虽然我

随机推荐

  • “unable to find a medium containing a live file system“问题真正有效的解决方法。

    真正有效的关于ubuntu 16 04安装U盘安装出现 unable to find a medium containing a live file system 问题的解决方法 网上搜到的都是乱弹琴 一个靠谱的都没有 真正的解决方法 出现
  • maven的settings.xml,pom.xml配置

    1settings xml
  • 找不到d3dx9_43.dll丢失怎么解决(分享几种解决方法)

    为什么我们打开电脑软件或许游戏时候 电脑会报错出现d3dx9 43 dll丢失 或许找不到d3dx9 43 dll等等的提示 下面来详细介绍一下d3dx9 43 dll详细解决方法跟d3dx9 43 dll是什么 如果你的系统中没有安装或安
  • 【Python】 _tkinter.TclError: bitmap "xzw.ico" not defined

    问题描述 在Python中可以使用pyinstaller命令将 py文件打包成 exe文件 但是成功打包成 exe文件后 在Windows系统上运行却出现了如下错误 tkinter TclError bitmap xzw ico not d
  • ESP32-CAM网络摄像头系列-01-基于RTSP协议的局域网视频推流/拉流的简单实现

    前言 由于项目需要 最近开始开坑关于ESP32 CAM系列的RTSP网络摄像头系列 该文章为该系列的第一篇文章 用于记录项目开发过程 本文解决的问题 使用ESP32 CAM获取图像数据 并通过RTSP协议将获取到的视频流传输到上位机进行显示
  • mysql存储loop_mysql存储loop

    mysql数据库存储过程 存储过程简介 存储过程可以简单理解为一条或者多条sql语句的集合 存储过程用来实现将一组关于表的操作的sql语句当作一个整体来执行 存储过程在实际应用中最主要的特点的事提高执行效率以及sql代码封装功能 特别是sq
  • 今天我要写Code吗?

    Manager还能不能写Code 如果你刚从技术开发职位升迁到管理职位 这会是一个在相当长一段时间内非常纠结你的问题 如果你之前技术做得还不错 算是个 高手 你应该会更加纠结一点 也许每天都在挣扎着 今天我要写Code吗 在深入探讨这个问题
  • 基础设计三——FPGA学习笔记<4>

    前置学习 基础设计二 FPGA学习笔记 3 基础设计一 FPGA学习笔记 2 verilog语法 FPGA学习笔记 1 参考书目 野火FPGA Verilog 开发实战指南 目录 一 串口 RS232 lt 1 gt 简介 lt 2 gt
  • Qt5.3.1编译QOCI链接oracle

    一 Qt 我下载的是mingw版本的 qt opensource windows x86 mingw482 opengl 5 3 1 exe 安装 安装的时候记得把source选上 建议全选 电脑不差3点多G的空间吧 安装好后 我们设置一下
  • IDC存储软件定义的七个主要类别

    在DoStor上看到一篇文章 提到IDC存储软件定义的七个主要类别 1 数据备份与恢复 2 归档软件 3 复制软件 4 存储管理软件 5 存储设备管理软件 6 存储基础架构软件 7 文件系统软件 对号入坐 我在学习和工作中涉及了其中的1 2
  • Git密码(登录凭证)的保存和重置 Mac

    Git密码 登录凭证 的保存和重置 Mac 1 凭证系统 2 命令行操作 store模式 2 1 凭证存储 2 2 凭证删除 3 命令行操作 osxkeychain模式 Mac用户 3 1 辅助工具安装 3 2 凭证存储 3 3 凭证删除
  • osg报错:错误(活动) E0757 变量 “GLenum“ 不是类型名

    前言 osg报错 错误 活动 E0757 变量 GLenum 不是类型名 原因 osg中封装了openGL的库 感觉vs2019无法识别openGL相关的部分 解决 vs2019中配置 预处理器
  • DELL R服务器配置IPMI

    转载自https blog csdn net hanzheng260561728 article details 107661274 使用iDRAC设置实用程序 在启动过程中按F2 设置iDRAC IP 打开受管理的系统 在开机自检 POS
  • 如何将node.js部署到服务器上

    注 本文只是简易的单个node js文件 名为server js 运行 是为了给前端项目写一个数据接口 环境 阿里云服务器 ubuntu 64bit xshell 1 首先登录阿里云添加安全组规则 开放程序运行时访问的端口号 本文为8000
  • 使用 selenium 连接已经打开的 chrome 浏览器

    1 方法一 新建文件夹test 进入chrome exe 目录 打开CMD 输入 chrome exe remote debugging port 9999 user data dir D test 弹出 浏览器框 pycharm运行脚本如
  • springmvc代码正确但是报错404解决以及乱码解决

    1 如果代码正确 但是运行报错404的话 可能是jar包没有导入到maven上 可以到Project Structure 中的Artifacts中 找到对应的项目 创建一个lib文件夹 添加jar包到里面 如果没有导入jar包的话 可以在W
  • Linux nohup后台命令基础详解

    一 前言 因为经常使用Xshell进行服务器代码的运行 但是每次到关机后 或者是关掉Xshell连接窗口 在服务器上的命令 操作也就断掉了 这不得不找到了一个Linux命令 nohup 二 基本用法 nohup command arg 拿p
  • PHP实现发送邮件

    不同类型的邮箱发送邮件的方式也是不同的 下面我们就先给大家举例介绍qq邮箱开启发送邮件服务的方法 首先我们登录qq邮箱 打开设置 选择帐户 然后在帐户下 找到如下所示的开启服务部分 开启服务中 前两个选项均可实现邮件发送服务 点击开启 会出
  • 2个map集合求差集

    List
  • I - Playing With Strings(回文串)

    I Playing With Stringshttps vjudge csgrandeur cn problem Gym 101020I 丹尼和迈克是两个孩子 他们整天玩游戏 当他们找不到游戏玩的时候 他们就发明一个游戏 有一个小时左右到达