• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

[神梦] 【每日一题】处于顶端的字符串 - 2022.10.21 [复制链接]

1#
题目描述

编写一个函数,该函数接受消息字符串并从最高到最低返回字符串的本地顶部。

字符串顶部是通过以下方式显示字符串:

下一个顶部总是比上一个高1个字符。对于上面的示例,abcdefghijklmnopqrstuvwxyz1234输入字符串的解决方案是3pgb。

当消息字符串为空时,返回一个空字符串。
输入字符串可能很长。确保您的解决方案具有良好的性能。

题目难度:简单
题目来源:String tops | Codewars
题目交流: 584781753
  1. Import "SmAssert.dll"

  2. Function 处于顶端的字符串(消息字符串)
  3.     // 您的代码写在这里
  4. End Function


  5. SmAssert.That 处于顶端的字符串(""), "=", ""
  6. SmAssert.That 处于顶端的字符串("12"), "=", "2"
  7. SmAssert.That 处于顶端的字符串("abcdefghijklmnopqrstuvwxyz12345"), "=", "3pgb"
  8. SmAssert.That 处于顶端的字符串("abcdefghijklmnopqrstuvwxyz1236789ABCDEFGHIJKLMN"), "=", "M3pgb"
复制代码

参考题解

  1. Import "SmAssert.dll"

  2. Function 处于顶端的字符串(消息字符串)
  3.     
  4.     '【作者】:神梦无痕
  5.     '【QQ】:1042207232
  6.     '【Q群】:584781753
  7.     
  8.     Dim top_msg_index
  9.     
  10.     // 当消息字符串为空时,返回一个空字符串
  11.     If 消息字符串 = "" Then
  12.         处于顶端的字符串 = ""
  13.     Else
  14.         top_num_list = Array()
  15.         ReDim top_num_list(Len(消息字符串)-1)
  16.         For n = 1 To Len(消息字符串)
  17.             // 通过数学计算,可以得出第n个顶部值所在的位置为:2 * (n ^ 2) - n + 1
  18.             top_msg_index = 2 * (n ^ 2) - n + 1
  19.             // 当最后一个顶部值所在的索引位置 大于 字符长度,则退出循环
  20.             If top_msg_index > Len(消息字符串) Then
  21.                 Goto break
  22.             End If
  23.             // 获得字符串的顶部值,并按倒序排序
  24.             top_num_list(n-1) = Mid(消息字符串, top_msg_index, 1)
  25.         Next
  26.         Rem break
  27.         // 列表格式转成字符串格式,并反转字符串
  28.         处于顶端的字符串 = StrReverse(Join(top_num_list, ""))
  29.     End If
  30. End Function


  31. SmAssert.That 处于顶端的字符串(""), "=", ""
  32. SmAssert.That 处于顶端的字符串("12"), "=", "2"
  33. SmAssert.That 处于顶端的字符串("abcdefghijklmnopqrstuvwxyz12345"), "=", "3pgb"
  34. SmAssert.That 处于顶端的字符串("abcdefghijklmnopqrstuvwxyz1236789ABCDEFGHIJKLMN"), "=", "M3pgb"
复制代码










插件下载

 
【插件】神梦断言插件 SmAssert.dll,帮助开发者发现业务逻辑错误

最后编辑神梦科技 最后编辑于 2022-10-21 22:15:31
2#

111111111111111111

3#

学习学习学习

4#

66666666

发新话题 回复该主题