如何解决如何解释at函数; substr函数;伪代码中的exist函数
我最近有一个关于工作预评估的问题,即使查询了每个功能的工作原理,我也不知道如何解决。这是一个伪代码。
下面是一个名为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,1) + 1)
else
m.ReturnValue = p1
endif
endif
return m.ReturnValue
我的解释是,由于char超过1个字符,因此它将转到第一个IF
语句。然后,该IF语句将删除第二个字符集,这将是中间名,但是我不认为那是正确的,因为我不确定+1
在结束之前是什么。括号在以下行中显示:
m.ReturnValue = substr(p1,2) + 1)
有人可以解释如何解释此伪代码片段,然后让我知道我是否处在正确的路径上,以便下次理解它。而且我也不确定它们对应的语言。
解决方法
- 首先,这是一个伪代码,因此功能
at()
,substr()
,occurs()
不需要真正存在。 - 但是,一个好的访问员的主要职责是澄清伪代码中每个未知功能的行为,或者至少提及这些功能所对应的语言。这是因为,用于在
JavaScript
,c++
,php
中查找子字符串的函数工作类似,但是它们始终不接受相同的否。参数。另一方面,charAt()
或at()
函数有几种语言,但是它们可以具有不同类型的参数。 - 无论如何,让我们尝试找出那些未知函数的定义。目前,据我所知,我可以确定伪代码中提到的那些函数与
MySQL
函数的SUBSTR()
定义和SQL
函数的CHARINDEX()
定义紧密匹配,我从中猜到了。传递的参数及其类型。
分别在MySQL
和SQL
中,这两个函数定义为:
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(' ',2)
与sqlCHARINDEX(substring,start)
对应,这意味着从索引2开始(假设基于1的索引),它将搜索空格字符的第一个匹配项,并且返回该索引。因此,在给定字符串"JOHN PAUL SMITH"
的情况下,它应该返回5
(考虑从1开始的索引)。 - 如果我们尝试将
substr(p1,SOMETHING)
与MySQLSUBSTR(string,[length])
对应,此处length
是可选的,并且我们已经发现at()
函数返回5
,因此表达式的计算结果为m.ReturnValue = substr(p1,5 + 1)
- 最后,该函数返回
m.ReturnValue
,如果我们从给定字符串的第6个索引(考虑到基于1的索引)中找到了子字符串,则对采访者的最终输出将是: PAUL SMITH
编辑:
无论我已经解释了什么,对于at()
函数,特别是它的第三个参数,可能会有一个困惑。其他2个功能很清楚。如前所述,如果它对应于SQL
,则第3个参数将是起点。但是,可能还有其他情况,第三个参数可以称为occurrence_num
。在这种情况下,由于将2
作为参数传递,at(' ',2)
将返回10
(考虑从1开始的索引)。随后,最终答案将为substr(p1,10 + 1)
,即substr(p1,11)
,即 SMITH 。
根据我的理解,此伪代码检查给定字符串中有多少空格。如果有多个,它将返回第二个空格字符以外的子字符串,如果一个空格将返回超出该空格的子字符串,否则将返回整个字符串(表示没有空格插入)。因此,如果您输入以下内容:
我在家。
它将返回家。
我现在在家。
它将立即返回家。
再见。
它将立即返回。
再见
它只会返回再见。
,我非常感谢您提供的所有帮助和见解! 我找到了一些文档,给出的两个答案都是正确的。
在书面伪代码中,给定的功能可以这样解释:
@material-ui/styles
因此函数应返回: SMITH
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。