gpt4 book ai didi

php - 如何解释at()函数; substr()函数;伪代码中的exist()函数

转载 作者:行者123 更新时间:2023-12-02 09:48:03 25 4
gpt4 key购买 nike

最近,我有一个关于工作预评估的问题,即使查询了每个功能的工作原理,我也不知道如何解决。这是一个伪代码。
下面是一个名为foo()的函数,该函数将被传递一个值并返回一个值。如果将以下值传递给foo函数,将返回什么?foo("JOHN PAUL SMITH")功能如下:

function foo 
parameter p1

if occurs(' ', p1) > 1
m.ReturnValue = substr(p1, at(' ', p1, 2) + 1)
else if occurs(' ', p1) = 1
m.ReturnValue = substr(p1, at(' ', p1, 1) + 1)
else
m.ReturnValue = p1

endif

endif

return m.ReturnValue
我的解释是,由于char长度超过1个字符,因此它将转到第一个 IF语句。然后,该IF语句将删除第二个字符集,这将是中间名,但是我不认为那是正确的,因为我不确定括号结尾处的 +1在以下行: m.ReturnValue = substr(p1, at(' ', p1, 2) + 1)有人可以解释如何解释此伪代码片段,然后让我知道我是否处在正确的路径上,以便下次理解它。而且我也不确定它们对应的语言。

最佳答案

  • 首先,这是一个伪代码,因此不需要真正存在功能at()substr()occurs()
  • 但是,一个好的访问员的主要职责是澄清伪代码中每个未知函数的行为,或者至少提及这些函数所对应的语言。这是因为,用于在JavaScriptc++php中查找子字符串的函数的工作原理类似,但是它们始终不接受相同的否。参数。另一方面,charAt()at()函数有几种语言,但是它们可以具有不同类型的参数。
  • 无论如何,让我们尝试找出那些未知函数的定义。目前,据我所知,我可以确定伪代码中提到的那些功能与MySQLSUBSTR()定义和SQL函数的CHARINDEX()定义紧密匹配,这是我从否定的。传递的参数及其类型。

  • MySQLSQL中,这两个函数分别定义为:
    SUBSTR(string, start, length)           // length is optional here
    CHARINDEX(substring, string, start) // start is optional here
    现在,让我们在您发布时划分伪代码的不同部分:
  • occurs(' ', p1)很容易理解。它将返回在传递的参数字符串p1中存在多少个空格字符。在给定的字符串"JOHN PAUL SMITH"中,我们可以清楚地看到2个空格字符。然后,if occurs(' ', p1) > 1将返回true,并将执行此行m.ReturnValue = substr(p1, at(' ', p1, 2) + 1)
  • 现在,如果我们尝试将at(' ', p1, 2)与sql CHARINDEX(substring, string, start)对应,这意味着从索引2开始(假定从1开始的索引),它将搜索第一次出现的空格字符并返回该索引。因此,在给定字符串"JOHN PAUL SMITH"的情况下,它应该返回5(考虑从1开始的索引)。
  • 如果我们尝试将substr(p1, SOMETHING)与MySQL SUBSTR(string, start, [length])对应,此处length是可选的,并且正如我们已经发现at()函数返回5,因此该表达式将被评估为m.ReturnValue = substr(p1, 5 + 1)
  • 最后,该函数返回m.ReturnValue,如果我们从给定字符串的第6个索引(考虑到基于1的索引)中找到了子字符串,则最终向面试官的输出为: PAUL SMITH

  • 编辑:
    不管我已经解释了什么,关于 at()函数,特别是它的第三个参数,可能会有一个困惑。其他2个功能很清楚。如前所述,如果它对应于 SQL,那么第3个参数将是起点。但是,可能还有其他情况,第三个参数可以称为 occurrence_num。在这种情况下,由于将 2作为参数传递,因此 at(' ', p1, 2)将返回 10(考虑从1开始的索引)。随后,最终答案将为 substr(p1, 10 + 1),即 substr(p1, 11),即 SMITH

    关于php - 如何解释at()函数; substr()函数;伪代码中的exist()函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63422218/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com