java
程序员贺加贝
这个作者很懒,什么都没留下…
展开
-
力扣-2073.买票需要的时间
这道题是到队列的题,原来看完题我真的想按照队列来作,但是感觉跟以前有一道题的逻辑很像,就去推了推。首先,这道题其实就是轮着-1,到0的,推出,直到 tickets[k] 那个位置为0的时候就停止,然后看总过减了多少个1,也就是消耗多少秒。我先假设了一下,在都相同的情况下,我找到 tickets[k] = 0 需要多长时间,这其实就类似与在一个 n × m 的表中 ,找到指定的那个需要多少步 一个道理。举个例子,就像上图中,找到11,我想的是,肯定是(前两行 + k + 1)那么,这道题,如果第..原创 2021-11-27 22:35:44 · 401 阅读 · 0 评论 -
力扣_387. 字符串中的第一个唯一字符(简单)
好久没有写过了,今儿就写了道简单题,看完题后,感觉思路很简单,就循环去找就好了,先上第一次提交的代码,里面有详细的注释public static int firstUniqChar(String s) { // 取每一个字符 for (int i = 0; i < s.length(); i++) { // 获取字符 char examine = s.charAt(i); // 将这个字符当成临时变量 .原创 2021-11-23 22:54:46 · 220 阅读 · 1 评论 -
2020年 第十一届蓝桥杯 结束总结
从去年12月份参加校内选拔,到昨天比赛结束,一年的时间,收获良多。我自己都没有想到能坚持下来。最开始讲Java基础的时候,东西很简单,但当时很痛苦,记得最开始的我连一个定义变量都报错,哈哈。慢慢的去敲代码,去尝试做题,去刷C语言网上的题。因为疫情,省赛推迟,当时那几个月基本没敲过代码,当时感觉要废了,老师当时发的算法视频也没看过,现在想想后悔啊,省赛结束到国赛就20天的时间,基础算法的都没怎么学了,碰到一道题就想着暴力破解,常考的像动态规划、贪心算法、回溯等等就更不会了。在最后20天里,时间紧,敲代码原创 2020-11-15 22:34:49 · 535 阅读 · 0 评论 -
2015 第六届 蓝桥杯Java C组 省赛真题
1.隔行变色2.立方尾不变3.无穷分数4.循环节长度5.格子中输出6.奇妙的数字7.加法变乘法8.移动距离9.打印大X10垒骰子原创 2020-10-16 17:35:29 · 3328 阅读 · 0 评论 -
2016 第七届 蓝桥杯 Java C组 省赛真题
一:有奖猜谜二:煤球数目三:平方怪圈四:骰子游戏五:分小组六:凑算式七: 搭积木八:冰雹数九:四平方和十:密码脱落原创 2020-10-14 11:08:15 · 1285 阅读 · 0 评论 -
2017第八届蓝桥杯Java C组 省赛真题(只有前7道的解题代码)
一:外星日历二:兴趣小组三:纸牌三角形四:承压计算五:杨辉三角六:最大公共子串七:Excel地址八:拉马车九:青蛙跳杯子十:图形排版原创 2020-10-12 17:39:52 · 1286 阅读 · 0 评论 -
2018第九届蓝桥杯Java C组 省赛真题
一.哪天返回二.猴子分香蕉三.字母阵列四.第几个幸运数五.书号验证六.打印大X七.缩位求和八.等腰三角形九.小朋友崇拜圈十.耐摔指数原创 2020-10-11 20:48:08 · 4413 阅读 · 0 评论 -
题目 1518: [蓝桥杯][算法提高VIP]寻找三位数
题目描述将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,试求出所有满足条件的三个三位数。例如:三个三位数192,384,576满足以上条件。输入无输入文件输出输出每行有三个数,为满足题设三位数。各行为满足要求的不同解。样例输入无样例输出无解题思路:这道题也没啥思路的,就是一个全排列,全排列完以后将每三个合成一组去判断就好了。全排列忘了可以看代码去回忆一下,直接看代码吧代码如下:public class Cyyw1518 { p原创 2020-09-26 21:50:26 · 552 阅读 · 0 评论 -
题目 1507: [蓝桥杯][算法提高VIP]去注释
题目描述给你一段C++代码,将其中的注释去除后输出剩余的代码。注释共有两种形式:行注视:以//开头,一直作用到行尾为止。例子:int n;//n表示数据规模int a;去注释后:int n;int a;注意:保留行尾换行符段注视:以/开头,到//结尾,中间部分都是注释,可以跨行。例子:int main() {/*我是一段注释*/}去注释后:int main() {}注意:由于在线评测系统(Online Judge)对网页显示文本作了格式化,原创 2020-09-26 20:31:48 · 249 阅读 · 1 评论 -
题目 1502: [蓝桥杯][算法提高VIP]利息计算
题目描述编制程序完成下述任务:接受两个数,一个为用 户一年期定期存款金额,一个为按照百分比格式表示的利率;程序计算一年期满后本金与利息总额。说明:(1)存款金额以人民币元为单位,可能精确到分; (2)输入利率时不需要输入百分号,例如一年期定期存款年利率为2.52%,用户输入2.52即可;(3)按照国家法律,存款利息所得需缴纳20% 的所得税,计算结果时所得税部分应扣除。输入输入一行,包含两个实数,分别表示本金和年利率。输出输出一行,包含一个实数,保留到小数点后两位,表示一年后的本金与利息和。原创 2020-09-25 16:13:18 · 256 阅读 · 0 评论 -
题目 1501: [蓝桥杯][算法提高VIP]分苹果
题目描述小朋友排成一排,老师给他们分苹果。小朋友从左到右标号1…N。有M个老师,每次第i个老师会给第Li个到第Ri个,一共Ri-Li+1个小朋友每人发Ci个苹果。最后老师想知道每个小朋友有多少苹果。数据规模和约定100%的数据,N、M≤100 000,1≤Li≤Ri≤N,0≤Ci≤100。输入第一行两个整数N、M,表示小朋友个数和老师个数。接下来M行,每行三个整数Li、Ri、Ci,意义如题目表述。输出一行N个数,第i个数表示第i个小朋友手上的水果。样例输入5 31 2 12 3原创 2020-09-25 13:19:25 · 747 阅读 · 0 评论 -
题目 1500: [蓝桥杯][算法提高VIP]分数统计
题目描述给定一个百分制成绩T,将其划分为如下五个等级之一:90 ~ 100为A,80 ~ 89为B,70 ~ 79为C,60 ~ 69为D,0~59为E现有若干百分制成绩(成绩个数不超过1000个),请你统计五个等级段的人数,并找出人数最多的那个等级段,按照从大到小的顺序输出该段中所有人成绩(保证人数最多的等级只有一个)。输入第一行是成绩的个数 n第二行是学生的成绩,若干0~100的正整数,用空格隔开输出第一行为5个正整数,分别表示A,B,C,D,E五个等级段的人数第二行一个正整数,表示人原创 2020-09-23 09:13:56 · 369 阅读 · 0 评论 -
第十届蓝桥杯 JAVA C组 省赛真题
一、求和二、矩形切割三、不同子串四、质数五、最大降雨量六、旋转七、外卖店优先级八、人物相关性分析九、等差数列十、打扫机器人原创 2020-09-19 22:40:26 · 3602 阅读 · 0 评论 -
题目 1493: [蓝桥杯][算法提高VIP]任意年月日历输出
打印任意年月日历输出原创 2020-09-18 23:34:17 · 381 阅读 · 0 评论 -
题目 1490: [蓝桥杯][算法提高VIP]五次方数
题目描述对一个数十进制表示时的每一位数字乘五次方再求和,会得到一个数的五次方数例如:1024的五次方数为1+0+32+1024=1057有这样一些神奇的数,它的五次方数就是它自己,而且这样的数竟然只有有限多个从小到大输出所有这样的数输入无输出每个数独立一行输出样例输入无样例输出无解题思路:这道题没有告诉我们限度在哪里,所以我们可以找个大的数让它跑,再去定义边界.但是出了个不是问题的问题,看图:这是我把边界放到300000跑出来的,看着没啥问题是吧,但是判题机显示答案错误。原创 2020-09-18 20:28:15 · 410 阅读 · 0 评论 -
题目 1489: [蓝桥杯][算法提高VIP]乘法运算(注意格式)
题目描述编制一个乘法运算的程序。从键盘读入2个100以内的正整数,进行乘法运算并以竖式输出。样例输入16 8样例输出16× 8━━━1288×16=128,则第四行128右侧对准个位输出。计算完成,不再输出。再例如:输:87x76输出:87×76━━━522609━━━6612输入输入只有一行,是两个用空格隔开的数字,均在1~99之间(含1和99)。输出输出为4行或7行,符合乘法的竖式运算格式。**注意,**乘号和下划线为特殊符号,可以从样例中复制黏贴原创 2020-09-18 17:38:48 · 434 阅读 · 0 评论 -
题目 1487: [蓝桥杯][算法提高VIP]不同单词个数统计
题目描述编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数。例如:对于句子“one little two little three little boys”,总共有5个不同的单词:one, little, two, three, boys。说明:(1)由于句子当中包含有空格,所以应该用gets函数来输入这个句子;(2)输入的句子当中只包含英文字符和空格,单词之间用一个空格隔开;(3)不用考虑单词的大小写,假设输入的都是小写字符;(4)句子长度不超过100个字符。输入原创 2020-09-18 16:13:47 · 214 阅读 · 0 评论 -
题目 1485: [蓝桥杯][算法提高VIP]Torry的困惑(提高型)
题目描述Torry从小喜爱数学。一天,老师告诉他, 像2、3、5、7……这样的数叫做质数。Torry突然想到一个问题,前10、100、1000、10000……个质数的乘积是多少呢?他把这个问题告诉 老师。老师愣住了,一时回答不出来。于是Torry求助于会编程的你,请你算出前n个质数的乘积。不过,考虑到你才接触编程不久,Torry只要你算出这 个数模上50000的值。输入仅包含一个正整数n,其中n< =100000。输出输出一行,即前n个质数的乘积模50000的值。样例输入1样例输出原创 2020-09-18 15:45:52 · 230 阅读 · 0 评论 -
题目 1483: [蓝桥杯][算法提高VIP]数组替换
题目描述编写并测试如下函数:void Add (int a[], int m, int b[], int n);该函数将数组b的前n个元素追加到数组a的前m个元素后,假定数组a具有至少存放m+n个元素的空间。例如,如果数组a为 {22,33,44,55,66,77,88,99},数组b为{20,30,40,50,60,70,80,90},则调用Add(a,5,b,3) 后,将把数组a变为{22,33,44,55,66,20,30,40}。注意数组b并没有改变,而且数组a中只需改变原创 2020-09-17 18:20:01 · 237 阅读 · 0 评论 -
题目 1479: [蓝桥杯][算法提高VIP]删除数组中的0元素
题目描述编写函数CompactIntegers,删除数组中所有值为0的元素,其后元素向数组首端移动。注意,CompactIntegers函数需要接收数组及其元素个数作为参数,函数返回值应为删除操作执行后数组的新元素个数。输入时首先读入数组长度,再依次读入每个元素。将调用此函数后得到的数组和函数返回值输出。输入第一行一个数,表示数组个数第二行为每个数字,空格分开输出输出处理后的数字以及个数,各占一行样例输入72 0 4 3 0 0 5样例输出2 4 3 54解题思路:这道题但从原创 2020-09-17 17:12:42 · 260 阅读 · 0 评论 -
题目 1471: [蓝桥杯][基础练习VIP]矩形面积交
问题描述平面上有两个矩形,它们的边平行于直角坐标系的X轴或Y轴。对于每个矩形,我们给出它的一对相对顶点的坐标,请你编程算出两个矩形的交的面积。输入输入仅包含两行,每行描述一个矩形。在每行中,给出矩形的一对相对顶点的坐标,每个点的坐标都用两个绝对值不超过10^7的实数表示。输出输出仅包含一个实数,为交的面积,保留到小数后两位。样例输入1 1 3 32 2 4 4样例输出1.00解题思路:代码如下:import java.util.Scanner;/** * 矩阵面积交 *原创 2020-09-17 16:11:53 · 261 阅读 · 0 评论 -
题目 1470: [蓝桥杯][基础练习VIP]时间转换
问题描述:给定一个以秒为单位的时间t,要求用 “< H> :< M> :< S> ”的格式来表示这个时间。< H> 表示时间,< M> 表示分钟, 而< S> 表示秒,它们都是整数且没有前导的“0”。例如,若t=0,则应输出是“0:0:0”;若t=3661,则输出“1:1:1”。输入输入只有一行,是一个整数t(0< =t< =86399)。输出输出只有一行,是以“< H> :< M> :原创 2020-09-17 15:06:22 · 227 阅读 · 0 评论 -
题目 1468: [蓝桥杯][基础练习VIP]报时助手
题目描述给定当前的时间,请用英文的读法将它读出来。时间用时h和分m表示,在英文的读法中,读一个时间的方法是:如果m为0,则将时读出来,然后加上“o’clock”,如3:00读作“three o’clock”。如果m不为0,则将时读出来,然后将分读出来,如5:30读作“five thirty”。时和分的读法使用的是英文数字的读法,其中0~20读作:0:zero, 1: one, 2:two, 3:three, 4:four, 5:five, 6:six, 7:seven, 8原创 2020-09-14 21:43:36 · 276 阅读 · 0 评论 -
题目 1466: [蓝桥杯][基础练习VIP]字符串对比
题目描述给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一:1:两个字符串长度不等。比如 Beijing 和 Hebei2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满足情况2)。比如 beijing 和 BEIjing4:两个字符串长度相等,但是即使是不区分大小原创 2020-09-14 21:09:59 · 199 阅读 · 0 评论 -
题目 1464: [蓝桥杯][基础练习VIP]分解质因数
题目描述求出区间[a,b]中所有整数的质因数分解。提示先筛出所有素数,然后再分解。数据规模和约定2< =a< =b< =10000输入输入两个整数a,b。输出每行输出一个数的分解,形如k=a1a2a3…(a1< =a2< =a3…,k也是从小到大的)(具体可看样例)样例输入3 10样例输出3=34=225=56=237=78=2229=3310=25解题思路判断一个数是否是一个素数有多种方法,可以去了解一下,它的运行效率不一样的原创 2020-09-14 20:43:40 · 181 阅读 · 0 评论 -
2020第十一届蓝桥杯Java C组 省赛真题
第一题:指数计算第二题:解密第三题:跑步训练第四题:合并检测第五题:REPEAT程序第六题:分类计算第七题:整除序列第八题:走方格第九题:字符串编码第十题:整数小拼接原创 2020-09-12 18:04:11 · 1702 阅读 · 2 评论 -
第十一届蓝桥杯Java C组 省赛真题(7~10题)
试题 G: 整除序列【问题描述】本题总分:15 分有一个序列,序列的第一个数是 n,后面的每个数是前一个数整除 2,请输出这个序列中值为正数的项。【输入格式】输入一行包含一个整数 n。【输出格式】输出一行,包含多个整数,相邻的整数之间用一个空格分隔,表示答案。【样例输入】201【样例输出】20 10 5 2 11【评测用例规模与约定】对于 80% 的评测用例,1 ≤ n ≤ 109。对于所有评测用例,1 ≤ n ≤ 1018。试题 H: 走方格本题总分:20 分【问题原创 2020-09-12 17:49:13 · 1790 阅读 · 2 评论 -
题目 1461: [蓝桥杯][基础练习VIP]FJ的字符串
题目描述FJ在沙盘上写了这样一些字符串:A1 = “A”A2 = “ABA”A3 = “ABACABA”A4 = “ABACABADABACABA”… …你能找出其中的规律并写所有的数列AN吗?输入仅有一个数:N ≤ 26。输出请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。样例输入3样例输出ABACABA解题思路这道题要找规律,会发现其实第n个字符串 = 第(n-1)的字符串+字母+第(n-1)的字符串。所以这道原创 2020-09-11 20:29:47 · 241 阅读 · 0 评论 -
题目 1458: [蓝桥杯][2013年第四届真题]错误票据
题目描述某涉密单位下发了某种票据,并要在年终全部收回。每张票据有唯一的ID号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。你的任务是通过编程,找出断号的ID和重号的ID。假设断号不可能发生在最大和最小号。输入要求程序首先输入一个整数N(N< 100)表示后面数据行数。接着读入N行数据。每行数据长度不等,是用空格分开的若干个(不大于100个)正整数(不大于100000),请注意行内原创 2020-09-11 17:40:18 · 223 阅读 · 0 评论 -
题目 1454: [蓝桥杯][历届试题]蚂蚁感冒
题目描述长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。输入第一行输入一个整数n (1 < n < 50), 表示蚂蚁的总数。接着的一行是n个用空格分开的整数 Xi (-100 < Xi <原创 2020-09-11 16:39:56 · 265 阅读 · 0 评论 -
题目 1446: [蓝桥杯][2013年第四届真题]核桃的数量
题目描述小张是软件项目经理,他带领3个开发组。工期紧,今天都在加班呢。为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。他的要求是:各组的核桃数量必须相同各组内必须能平分核桃(当然是不能打碎的)尽量提供满足1,2条件的最小数量(节约闹革命嘛)输入输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c< 30)输出输出一个正整数,表示每袋核桃的数量。样例输入2 4 5样例输出20解题思路这道题主要用到的就是最小公倍数,求最小公倍数的方原创 2020-09-10 23:28:29 · 266 阅读 · 0 评论 -
题目 1443: [蓝桥杯][历届试题]数字游戏(转圈报数)
题目描述栋栋正在和同学们玩一个数字游戏。游戏的规则是这样的:栋栋和同学们一共n个人围坐在一圈。栋栋首先说出数字1。接下来,坐在栋栋左手边的同学要说下一个数字2。再下面的一个同学要从上一个同学说的数字往下数两个数说出来,也就是说4。下一个同学要往下数三个数,说7。依次类推。为了使数字不至于太大,栋栋和同学们约定,当在心中数到 k-1 时,下一个数字从0开始数。例如,当k=13时,栋栋和同学们报出的前几个数依次为:1, 2, 4, 7, 11, 3, 9, 3, 11, 7。游戏原创 2020-09-10 21:26:55 · 1526 阅读 · 0 评论 -
题目 1442: [蓝桥杯][2013年第四届真题]打印十字图
题目描述解题思路先看代码,思路后补代码如下import java.util.Scanner;/** * 打印十字 * @author hf * */public class Cyyw1442 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); // 层数 // 5+4*n总行数 int len = 3 + 2 * n原创 2020-09-10 16:45:38 · 157 阅读 · 0 评论 -
蓝桥杯试题 算法训练 猴子吃包子简单题
资源限制时间限制:1.0s 内存限制:256.0MB问题描述从前,有一只吃包子很厉害的猴子,它可以吃无数个包子,但是,它吃不同的包子速度也不同;肉包每秒钟吃x个;韭菜包每秒钟吃y个;没有馅的包子每秒钟吃z个;现在有x1个肉包,y1个韭菜包,z1个没有馅的包子;问:猴子吃完这些包子要多久?结果保留p位小数。 输入格式输入1行,包含7个整数,分别表示吃不同包子的速度和不同包子的个数和保留的位数。 输出格式输出一行,包含1个实数,表示吃完所有包子的时间。 样例输入4 3 2 20原创 2020-09-09 22:36:56 · 573 阅读 · 0 评论 -
题目 1434: [蓝桥杯][历届试题]回文数字+位数和
题目描述观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。这样的数字叫做:回文数字。本题要求你找到一些5位或6位的十进制数字。满足如下要求:该数字的各个数位之和等于输入的整数。输入一个正整数 n (10< n< 100), 表示要求满足的数位和。输出若干行,每行包含一个满足要求的5位或6位整数。数字按从小到大的顺序排列。如果没有满足条件的,输出:-1样例输入44样例输出99899499994589985598原创 2020-09-09 13:17:24 · 220 阅读 · 0 评论 -
题目 1116: IP判断
题目描述在基于Internet的程序中,我们常常需要判断一个IP字符串的合法性。合法的IP是这样的形式:A.B.C.D其中A、B、C、D均为位于[0, 255]中的整数。为了简单起见,我们规定这四个整数中不允许有前导零存在,如001这种情况。现在,请你来完成这个判断程序吧_输入输入由多行组成,每行是一个字符串,输入由“End of file”结束。字符串长度最大为30,且不含空格和不可见字符输出对于每一个输入,单独输出一行如果该字符串是合法的IP,输出Y,否则,输出N样例输入1.2原创 2020-09-09 11:18:46 · 753 阅读 · 0 评论 -
题目 1115: DNA
题目描述小强从小就喜欢生命科学,他总是好奇花草鸟兽从哪里来的。终于, 小强上中学了,接触到了神圣的名词–DNA.它有一个双螺旋的结构。这让一根筋的小强抓破头皮,“要是能画出来就好了” 小强喊道。现在就请你帮助他吧输入输入包含多组测试数据。第一个整数N(N<=15),N表示组数,每组数据包含两个整数a,b。a表示一个单位的DNA串的行数,a为奇数且 3<=a<=39。b表示重复度(1<=b<=20)。输出输出DNA的形状,每组输出间有一空行。样例输入23 15原创 2020-09-07 22:59:10 · 679 阅读 · 0 评论 -
题目 2311: [蓝桥杯][2019年第十届真题]Fibonacci 数列与黄金分割
题目描述Fibonacci 数列是非常著名的数列:F[1] = 1,F[2] = 1,对于 i > 3,F[i] = F[i − 1] + F[i − 2]Fibonacci 数列有一个特殊的性质,前一项与后一项的比值,F[i]/F[i + 1], 会趋近于黄金分割。为了验证这一性质,给定正整数 N,请你计算 F[N]/F[N + 1],并保留 8 位 小数。输入一个正整数 N。(1 ≤ N ≤ 2000000000)输出F[N]/F[N + 1]。答案保留 8 位小数。样例输入原创 2020-09-07 17:57:50 · 630 阅读 · 0 评论 -
题目 1021: [编程入门]迭代法求平方根
题目描述用迭代法求 平方根公式:求a的平方根的迭代公式为: X[n+1]=(X[n]+a/X[n])/2要求前后两次求出的差的绝对值少于0.00001。 输出保留3位小数输入X输出X的平方根样例输入4样例输出2.000思路先看代码,思路后补代码如下使用.sqrt方法直接开放,但这道题规定使用迭代法,所以不建议使用public static void main(String[] args) { Scanner sc = new Scanner(System.in); d原创 2020-09-07 15:52:11 · 445 阅读 · 0 评论 -
题目 1431: [蓝桥杯][2014年第五届真题]分糖果
题目描述问题描述有n个小朋友围坐成一圈。老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏:每个小朋友都把自己的糖果分一半给左手边的孩子。一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。反复进行这个游戏,直到所有小朋友的糖果数都相同为止。你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。输入程序首先读入一个整数N(2< N< 100),表示小朋友的人数。接着是一行用空格分开的N个偶数(每个偶数不大于1000,不小于2)输出要求程序输出一个整原创 2020-09-07 13:07:07 · 1255 阅读 · 0 评论