首页 > 其他分享 >2023/08/04

2023/08/04

时间:2023-08-04 18:34:44浏览次数:44  
标签:String 04 int 08 样例 System 2023 sc Scanner

“福”字倒着贴,寓意“福到”。不论到底算不算民俗,本题且请你编写程序,把各种汉字倒过来输出。这里要处理的每个汉字是由一个 N × N 的网格组成的,网格中的元素或者为字符 @ 或者为空格。而倒过来的汉字所用的字符由裁判指定。

输入格式:
输入在第一行中给出倒过来的汉字所用的字符、以及网格的规模 N (不超过100的正整数),其间以 1 个空格分隔;随后 N 行,每行给出 N 个字符,或者为 @ 或者为空格。

输出格式:
输出倒置的网格,如样例所示。但是,如果这个字正过来倒过去是一样的,就先输出bu yong dao le,然后再用输入指定的字符将其输出。

输入样例 1:
$ 9
 @  @@@@@
@@@  @@@ 
 @   @ @ 
@@@  @@@ 
@@@ @@@@@
@@@ @ @ @
@@@ @@@@@
 @  @ @ @
 @  @@@@@
输出样例 1:
$$$$$  $ 
$ $ $  $ 
$$$$$ $$$
$ $ $ $$$
$$$$$ $$$
 $$$  $$$
 $ $   $ 
 $$$  $$$
$$$$$  $ 
输入样例 2:
& 3
@@@
 @ 
@@@
输出样例 2:
bu yong dao le
&&&
 & 
&&&
import java.util.Scanner;
public class Main{
    public static void main(String[]args)
    {
        Scanner sc=new Scanner(System.in);
        String x=sc.next();
        int n=sc.nextInt();
        boolean flag=true;
        String[] w=new String[n];
        sc.nextLine();
        for(int i=0;i<n;i++)
        {
            w[i]=sc.nextLine();
        }
        for(int i=0;i<n;i++)//横行转置
        {
            int j=n-1-i;
            StringBuilder sb=new StringBuilder(w[i]);
            if(!w[i].equals(w[j]))
            {
                flag=false;
            }
            w[i]=sb.reverse().toString();
        }
        for(int i=0;i<n;i++)
        {
            StringBuilder sb=new StringBuilder(w[i]);
            for(int j=0;j<w[i].length();j++)
            {
                char indexchar=w[i].charAt(j);
                if(indexchar!=' ')
                {
                    sb.replace(j,j+1,x);
                }
            }
            w[i]=sb.toString();
        }
        if(flag)
        {
            System.out.println("bu yong dao le");
        }
        for(int i=n-1;i>=0;i--)
        {
            System.out.println(w[i]);
        }
    }
}
“666”是一种网络用语,大概是表示某人很厉害、我们很佩服的意思。最近又衍生出另一个数字“9”,意思是“6翻了”,实在太厉害的意思。如果你以为这就是厉害的最高境界,那就错啦 —— 目前的最高境界是数字“27”,因为这是 3 个 “9”!

本题就请你编写程序,将那些过时的、只会用一连串“6666……6”表达仰慕的句子,翻译成最新的高级表达。

输入格式:
输入在一行中给出一句话,即一个非空字符串,由不超过 1000 个英文字母、数字和空格组成,以回车结束。

输出格式:
从左到右扫描输入的句子:如果句子中有超过 3 个连续的 6,则将这串连续的 6 替换成 9;但如果有超过 9 个连续的 6,则将这串连续的 6 替换成 27。其他内容不受影响,原样输出。

输入样例:
it is so 666 really 6666 what else can I say 6666666666
输出样例:
it is so 666 really 9 what else can I say 27

这题用了两种方法,第一种测试点上有一点小错误,开始的时候的想法来做的,步骤比较繁琐

然后第二种是看了看网上的思路然后自己再写了一遍,由于Java和C数组不太一样,所以还是得有自己的想法进行修改的

import java.util.Scanner;
public class Main {
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        String a=sc.nextLine();
        int num=0,m=0,s=0,l=0;//记录字符组合数
        for(int i=0;i<a.length();i++)
        {
            if(a.charAt(i)==' ')
            {
                num++;
            }
        }
        StringBuilder sb1=new StringBuilder(a);
        num++;//字符组合数比空格数多1
        for(int i=0;i<num;i++)
        {
            int n=0;//6的数量
            s=m;//组合的开始位置
            boolean flag=true;
            StringBuilder sb2=new StringBuilder();//创建空串
            for(int j=m;j<sb1.length();j++)
            {
                m++;//下次录入的开始位置
                if(i!=num-1)
                {
                l=m-1;//这个组合的结束位置
                }
                else
                    l=m;
                if(sb1.charAt(j)!=' ')
                {
                sb2.append(sb1.charAt(j));
                }
                else
                {
                break;//记录完一个字符组合
                }
            }
            for(int j=0;j<sb2.length();j++)
            {
                if(sb2.charAt(j)!='6')
                {
                    flag=false;//字符中有除了6以外的数字做标记
                }
            }
            if(flag)
            {
                for(int j=0;j<sb2.length();j++)
                {
                    if(sb2.charAt(j)=='6')
                    {
                        n++;
                    }
                }
            }
            if(n>3&&n<9)
            {
                sb1.replace(s,l,"9");
                m=m-sb2.length()+1;
            }
            else if(n>9)
            {
                sb1.replace(s,l,"27");
                m=m-sb2.length()+2;
            }
        }
        System.out.println(sb1);
    }
}
import java.util.Scanner;
public class Main{
    public static void main(String[] args)
    {
        Scanner sc=new Scanner(System.in);
        String a=sc.nextLine();
        StringBuilder sb=new StringBuilder(a);
//这里给加长一个非6的字符,java不像C超出数组范围就会报错,这就会导致最后一个元素很可能不会打印出来
        sb.append(" ");
        a=sb.toString();
        int count=0;
        for(int i=0;i<a.length();i++)
        {
            if(a.charAt(i)=='6')
            {
                count++;
                continue;
            }
            if(count>9)
            {
                System.out.print("27");
            }
            else if(count>3)
            {
                System.out.print("9");
            }
            else
            {
                for(int j=0;j<count;j++)
                {
                    System.out.print("6");
                }
            }
            if(i!=a.length()-1)//设置加长的部分一定不会打印
            System.out.print(a.charAt(i));
            count=0;
        }
    }
}

 

标签:String,04,int,08,样例,System,2023,sc,Scanner
From: https://www.cnblogs.com/zhenaifen/p/17606712.html

相关文章

  • 实力肯定!Coremail入选中国信通院“铸基计划”2023全景图
    近日,由中国信息通信研究院(以下简称“中国信通院”)主办的“2023数字生态发展大会”暨中国信通院“铸基计划”年中会议在京召开。会上发布了《高质量数字化转型产品及服务全景图(2023)》,Coremail凭借着优秀的产品技术和服务入选了全景图的“IT运营维护”和“数据治理”两大领域。在2022......
  • 华为开发者大会2023(HDC.Together)正式开启,一文带你了解全新鸿蒙世界
    (中国,东莞,2023年8月4日)2023年华为开发者大会(HDC.Together)今天正式开幕,华为发布HarmonyOS4、全新升级的鸿蒙开发套件、HarmonyOSNext开发者预览版本等一系列领先技术,为用户提供前所未有的革新体验,帮助开发者更高效地打造创新的智能终端和应用服务。华为常务董事、终端BGCEO、智能......
  • 2023.8.4 周五:MySQL相关命令
    1#展示数据库2showdatabases;34#创建数据库5creatdatabase+db1(数据库名称);67#如果创建同样名字的数据库,会报错,可以选择另一条判断语句;8creatdatabaseifnotexistsdb1;910#删除数据库11dropdatabasedb1(数据库名称);1213#如果删......
  • CVE-2021-22204 GitLab RCE之exiftool代码执行漏洞深入分析(二)
    文章写于2022-01-19,首发在天融信阿尔法实验室目标导读1前言2前置知识2.1JPEG文件格式2.2Perl模式匹配3exiftool源码调试到漏洞分析3.1环境搭建3.2漏洞简介3.3exiftool是如何解析嵌入的0xc51b标签3.4exiftool是如何调用parseAnt函数3.5parseAnt函数分......
  • 漏洞复现报告:CVE-2022-0847 Linux 内核漏洞
    1.1漏洞信息表漏洞名称Linuxkernel安全漏洞发布时间2022年3月7日漏洞编号CVE-2022-0847威胁类型其他危害级别高危影响版本LinuxKernel5.8-5.16.11、5.8-5.15.25、5.8-5.10.102漏洞描述产品介绍:Linuxkernel是美国Linux基金会的开源操作系统Linux所使用的内核。是一个一体化内核......
  • 04-认识微服务-spring-cloud
    https://www.bilibili.com/video/BV1LQ4y127n4?p=6&vd_source=5c5bc2d817741ded0db4f222d4a03a7c官方文档:https://spring.io/projects/spring-cloud......
  • 2023值得关注的人工智能7大发展趋势
    随着人工智能技术的不断创新和应用,我们可以看到人工智能在各个领域的应用越来越广泛。其中,有一些趋势特别值得我们关注。1)深度学习技术的发展深度学习技术在图像识别、语音识别、自然语言处理等领域表现出色,随着硬件计算能力的提升和大量数据的积累,深度学习技术将会在更多领域得......
  • 2023-08-04:村里面一共有 n 栋房子 我们希望通过建造水井和铺设管道来为所有房子供水。
    2023-08-04:村里面一共有n栋房子我们希望通过建造水井和铺设管道来为所有房子供水。对于每个房子i,我们有两种可选的供水方案:一种是直接在房子内建造水井成本为wells[i-1](注意-1,因为索引从0开始)另一种是从另一口井铺设管道引水数组pipes给出了在房子间铺设管道的......
  • 2023年8月4日做题情况
    我确实很菜,但还是不锁帖了直面惨淡的人生.jpg今天是线段树专题练习,均在洛谷上午场08:10:48准备先打个板子熟悉一下09:10:17打板子期间出现了许多细节问题,1h才调完,还是不够熟练09:40:11完成P4588[TJOI2018]数学计算尽管是一道绿题,但是还是看了题解(关于题面->线段树......
  • ActiveMQ任意文件写入漏洞(CVE-2016-3088)
    ActiveMQ任意文件写入漏洞(CVE-2016-3088)【现实项目遇到过】1.环境搭建cdvulhub-master/activemq/CVE-2016-3088docker-composeup-ddocker-composeconfig#查看靶场环境相关的配置信息docker-composedown#关闭靶场环境环境监听61616端口和8161端口,其中8......