提出这个问题的是大学生吗,想起以前老师总爱留这样的作业......
完成这个题目其实主要只考了一个问题:
如何比较两个字母的大小?
即char的比较,比如说 'a' >'b', 结果是false,在char比较大小的时候,会把char自动转换为整数int,如果是char和int比较,也是先把char转换为int,也就是自动强转。
(具体的char和int的对应值,可以自己试着打印看看)。
在java中的英文字母从小到大的顺序是:从a到z,从A到Z。这道题就变成了找到最大数字。
@Test
fun findMaxTest(){
val str1 = "abcdefgfedcba"
val str2 = "xxxxx"
findMax(str1)
findMax(str2)
}
private fun findMax(str: String){
var maxLetter = 'a'
for (i in str.indices){
if (str[i] > maxLetter){
maxLetter = str[i]
}
}
// 拼接(max)
val stringBuilder = StringBuilder()
for (i in str.indices){
stringBuilder.append(str[i])
if (str[i] == maxLetter){
stringBuilder.append("(max)")
}
}
println(stringBuilder.toString())
}
我这是用kotlin写的,可惜我不太懂Go,但是我估计大体的思路都是一样的。