CN104615737A - 一种基于搜索框的计算方法及装置 - Google Patents

一种基于搜索框的计算方法及装置 Download PDF

Info

Publication number
CN104615737A
CN104615737A CN201510071164.8A CN201510071164A CN104615737A CN 104615737 A CN104615737 A CN 104615737A CN 201510071164 A CN201510071164 A CN 201510071164A CN 104615737 A CN104615737 A CN 104615737A
Authority
CN
China
Prior art keywords
node
binary tree
content
user
calculation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201510071164.8A
Other languages
English (en)
Inventor
齐飞
陈琪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Baidu Online Network Technology Beijing Co Ltd
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201510071164.8A priority Critical patent/CN104615737A/zh
Publication of CN104615737A publication Critical patent/CN104615737A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

本发明提供了一种基于搜索框的计算方法及装置,其中的方法包括:接收用户输入的内容,当检测到用于启动计算的字符时,则根据二叉树规则对所述用户输入的内容进行解析;若所述用户输入的内容能够解析成二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中。通过该方法能够使移动终端用户无需通过第三方应用即可获得所见即所得的计算结果,从而降低了操作成本,为移动终端用户提供了较好的用户体验。

Description

一种基于搜索框的计算方法及装置
技术领域
本发明涉及移动终端领域,尤其涉及一种基于搜索框的计算方法及装置。
背景技术
搜索引擎是移动终端中较常用的功能,并且当用户通过搜索引擎搜索到相应的结果时,通常也会伴随着计算需求。例如在搜索到某件商品的价格时,用户会希望获得该商品的折扣后价格或与该商品其它销售价格之间的差值;在搜索到某航班的信息后,用户会希望获得该航班的实际飞行时间,若出发地与目的地存在时差,则计算过程就会比较复杂。
但是针对用户的计算需求,由于目前现有的移动终端受限于屏幕尺寸和运算能力,通常的解决方案是将当前运行的搜索引擎程序切换至后台,再通过启动第三方计算程序进行计算,导致用户的操作成本较高。虽然现有的搜索引擎还可通过自身的通用开放平台完成计算,但仍然需要进入该通用开放平台中才能看到计算结果,这样就会使用户无法获得所见即所得的计算结果,导致用户体验较差。
发明内容
本发明解决的技术问题之一是如何为搜索引擎提供计算功能,使用户能够获得所见及所得的计算结果,从而降低用户的操作成本及提高用户的使用体验。
根据本发明一方面的一个实施例,提供了一种基于搜索框的计算方法,其中,包括:
接收用户输入的内容,当检测到用于启动计算的字符时,则根据二叉树规则对所述用户输入的内容进行解析;
若所述用户输入的内容能够解析成二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中。
可选地,所述用户输入的内容解析成的二叉树满足以下条件:
所述二叉树的叶子节点都是操作数,所述二叉树的非叶子节点都是操作符;以及
每个非叶子节点的操作符的优先级低于该非叶子节点的子树节点上的操作符的优先级。
可选地,所述用户输入的内容解析成的二叉树还满足以下条件:
对于具有两个操作数的操作符所在的节点,将所述用户输入的内容中位于该操作符左侧的操作数设置在该操作符所在节点的左子树节点,将所述用户输入的内容中位于该操作符右侧的操作数设置在该操作符所在节点的右子树节点;和/或
对于具有一个操作数的操作符所在的节点,该操作数设置在该操作符所在节点的左子树节点。
可选地,所述获取二叉树对应的数学公式的计算结果的过程包括:
从所述二叉树的根节点开始后序遍历所述根节点的左子树节点和右子树节点的值,再根据数学运算计算出所述根节点的值,将所述根节点的值作为所述用户输入的内容的计算结果。
可选地,所述方法还包括:
当检测到用户删除所述用于启动计算的字符时,则将所述用户输入的内容对应的联想内容或搜索结果显示在所述搜索框中。
根据本发明另一方面的一个实施例,提供了一种基于搜索框的计算装置,其中,包括:
接收解析单元,用于接收用户输入的内容,当检测到用于启动计算的字符时,则根据二叉树规则对所述用户输入的内容进行解析;
计算显示单元,用于若所述用户输入的内容能够解析成二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中。
可选地,在所述接收解析单元中,所述用户输入的内容解析成的二叉树满足以下条件:
所述二叉树的叶子节点都是操作数,所述二叉树的非叶子节点都是操作符;以及
每个非叶子节点的操作符的优先级低于该非叶子节点的子树节点上的操作符的优先级。
可选地,在所述接收解析单元中,所述用户输入的内容解析成的二叉树还满足以下条件:
对于具有两个操作数的操作符所在的节点,将所述用户输入的内容中位于该操作符左侧的操作数设置在该操作符所在节点的左子树节点,将所述用户输入的内容中位于该操作符右侧的操作数设置在该操作符所在节点的右子树节点;和/或
对于具有一个操作数的操作符所在的节点,该操作数设置在该操作符所在节点的左子树节点。
可选地,所述计算显示单元包括:
计算子单元,用于从所述二叉树的根节点开始后序遍历所述根节点的左子树节点和右子树节点的值,再根据数学运算计算出所述根节点的值,将所述根节点的值作为所述用户输入的内容的计算结果;
显示子单元,将所述计算结果显示在所述搜索框中。
可选地,所述装置还包括:
搜索显示单元,用于当检测到用户删除所述用于启动计算的字符时,则将所述用户输入的内容对应的联想内容或搜索结果显示在所述搜索框中。
由于本实施例可以根据用于启动计算的字符,将用户输入的内容解析为表示数学公式的二叉树,并将该二叉树对应的数学公式的计算结果直接显示在搜索框中,使移动终端用户无需通过第三方应用即可获得所见即所得的计算结果,从而降低了操作成本,为移动终端用户提供了较好的用户体验。
本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例、附图进行,但本发明并不仅限于这些实施例。而是,本发明的范围是广泛的,且意在仅通过后附的权利要求限定本发明的范围。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1是根据本发明一个实施例的基于搜索框的计算方法的流程图。
图2是根据本发明一个实施例中用户在输入用于启动计算的字符之前输入的内容。
图3是根据本发明一个实施例中用户在输入用于启动计算的字符之后的搜索框显示的内容。
图4是根据本发明一个实施例中将用户输入的内容解析成的二叉树示意图。
图5是根据本发明另一个实施例的基于搜索框的计算方法的流程图。
图6是根据本发明另一个实施例中用户删除用于启动计算的字符之后的搜索框显示的内容。
图7是根据本发明另一个实施例中用户继续输入内容之后的搜索框显示的内容。
图8是根据本发明另一个实施例中用户在输入用于启动计算的字符之后的搜索框显示的内容。
图9是根据本发明一个实施例的基于搜索框的计算装置的结构图。
图10是根据本发明一个实施例的基于搜索框的计算装置的执行流程图。
图11是根据本发明另一个实施例的基于搜索框的计算装置的结构图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的存续指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。
所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。
需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。
后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。
这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。
应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。
应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。
这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。
还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。
下面结合附图对本发明作进一步详细描述。
图1是根据本发明一个实施例的基于搜索框的计算方法的流程图。本发明中的方法主要通过移动终端中的操作系统或微处理器来完成。该移动终端包括但不限于平板电脑、智能手机、PDA等。
如图1中所示,本实施例所述的基于搜索框的计算方法主要包括如下步骤:
S100、接收用户输入的内容,当检测到用于启动计算的字符时,则根据二叉树规则对所述用户输入的内容进行解析;
S110、若所述用户输入的内容能够解析成二叉树,则获取所述二叉树对应的数学公式的计算结果,并将该计算结果显示在所述搜索框中。
下面对各步骤做进一步详细介绍。
如图2所示,步骤S100中,可以由移动终端的默认搜索引擎的搜索框或特定应用程序的搜索框接收用户输入的内容,当检测到用户输入了用于启动计算的字符时,则启动计算过程。
其中,用于启动计算的字符可以是“=”、“等于”或者“是多少”等具有获得计算结果的意愿的符号或文字。
随后,在步骤S110中,若所述用户输入的内容能够解析成满足预定条件的二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中。
在步骤S110中,若用户输入的内容能够解析成满足如下预定条件的二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中。其中的二叉树可以是每个节点最多有两个子树的树结构,并且包括完全二叉树、满二叉树、平衡二叉树等形式的二叉树均可用于本实施例的基于搜索框的计算方法。当任意一种用户输入的内容能够被解析成满足预定条件的二叉树时,即表示该二叉树能够被识别为数学公式,最后可由移动终端将该数学公式对应的计算结果显示在搜索框中。
可选的,步骤S110中的预定条件包括:
条件1、二叉树的叶子节点都是操作数,二叉树的非叶子节点都是操作符。
该条件1是为了对输入的内容进行计算时,能够将二叉树还原成数学公式,通过二叉树表示数学公式,能够为数学计算提供较高的效率,而如果采用直接对数学公式计算的方式,则需要对整个数学公式识别一遍后找到优选级最高的操作符,然后依次对优先级较低的操作符进行计算,因此采用二叉树表示数学公式能够提高计算效率,从而提升用户的使用体验。
条件2、每个非叶子节点的操作符的优先级低于该非叶子节点的子树节点上的操作符的优先级。
该条件2是为了区分操作符的优先级,从而在遍历二叉树的过程中即可对当前遍历的操作符进行计算,而无需比较多个操作符之间的优先级,进一步提升了计算效率。
当用户输入的内容解析成的二叉树同时满足条件1和条件2时,则可判断用户输入的内容是数学公式。
进一步可选的,所述预定条件还包括:
条件3,对于具有两个操作数的操作符所在的节点,将所述用户输入的内容中位于该操作符左侧的操作数设置在该操作符所在节点的左子树节点,将所述用户输入的内容中位于该操作符右侧的操作数设置在该操作符所在节点的右子树节点。
该条件3是针对“+”、“*”、“^”等具有两个操作数的操作符时,该两个操作数不会因为设置在子树的位置错误而导致整个属性公式的计算结果错误。可以理解的,该两个操作数不仅可以分别设置在左子树节点和右子树节点上,任何能够对该两个操作数的位置进行区分的方式均可使用在本实施例中。
条件4,对于具有一个操作数的操作符所在的节点,该操作数设置在该操作符所在的节点的左子树节点。
该条件4是针对“sin”、“tan”、“log”等具有一个操作数的操作符时,该一个操作数不会因为设置在子树的位置不统一而导致整个公式的计算结果错误。可以理解的,该一个操作数不仅可以设置在左子树节点上,也可以设置在右子树节点上,并且任何能够统一对该一个操作数的位置进行规定的方式均可使用在本实施例中。
当用户输入的内容解析成的二叉树同时满足条件3和条件4,或者只满足条件3和条件4中的一个时,则认为用户输入的内容是数学公式。例如用户输入的内容既包括具有两个操作数的操作符也包括具有一个操作数的操作符时,则需要同时满足条件3和条件4;当用户输入的内容只包括具有两个操作数的操作符或者只包括具有一个操作数的操作符时,可以只满足条件3或条件4中的一个。
以上所列举的条件仅为例举,本领域技术人员应理解还有其他可适用于本发明的条件,也应落入本发明的保护范围,为简明起见,仅以引用方式包含于此,而不做赘述。
以下结合图3来说明根据本发明的基于搜索框的计算方法的一个实例:
如图3所示,当用户输入“22+3-5”时,只在搜索框的下方提供该输入的内容的联想内容,而不会触发对该输入的内容的计算过程。当用户继续输入“=”时,则触发了对“=”之前输入的内容的计算过程。该用户输入的“22+3-5”的计算结果为“20”,则在搜索框中的“=”后显示“20”,从而完成一次对用户输入内容的计算及显示。
在触发对用户输入的内容的计算过程后,首先可将所述用户输入的内容解析为二叉树,该二叉树包括由至少一个操作符和操作数组成的树形层次结构。以用户输入的内容是1*2+log10为例,该输入的内容可解析为如图4所示的二叉树,其中的“*”、“+”及“log”均可视为操作符,“1”、“2”及“10”均可视为操作数。
若根据二叉树规则无法将所述用户输入的内容解析成二叉树,例如用户输入的内容是“1*2申请log10”,由于“申请”无法被识别为任何操作符,则“1*2”和“log10”只能被解析成单独的二叉树,所以该输入的内容无法被解析成一个完整的二叉树,此时可以认为用户并不是需要对输入的内容进行计算,因此可将所述用户输入的内容对应的联想内容或搜索结果显示在所述搜索框中。
可选地,在步骤S110中,所述二叉树对应的数学公式可由系统默认的浏览器调用计算器应用程序进行计算或由搜索引擎自带的计算模块进行计算。
其中,当移动终端在本地完成对该二叉树对应的数学公式的计算过程时,考虑到移动终端的计算能力以及用户的输入体验,本实施例可只对+、-、*、÷、sin函数、cos函数、tan函数、ctg函数、阶乘函数(!)、幂函数(^)、对数(log)以及括号等基本数学运算进行计算,自定义变量则可认为是不属于操作符和操作数的内容而不会被用于计算。
当移动终端将该二叉树对应的数学公式发送至云端,由云端(可选的采用阿拉丁平台)完成对该数学公式的计算过程时,由于云端的计算能力较强,除了可以对上述的基本数学运算进行计算以外,还可在云端设置一些模板,该模板可以包括特定几何图形的面积或体积的计算公式、特定倍率的倍角公式、整次数的二项式公式等,用于当用户输入的内容解析成的数学公式与任意模板匹配时,可直接计算出结果。
因此,对于如图4所示的二叉树,可以从根节点开始,先递归计算出其左子树节点和右子树节点的值,再根据数学运算计算出根节点的值即可,即整个计算过程是对二叉树的后序遍历。具体的计算过程包括:首先计算根节点“+”的左子树节点“*”,根据后序遍历的原则,该左子树节点表示的数学公式为“1*2”,则该左子树节点的值为“2”;然后计算根节点“+”的右子树节点“log”,根据后序遍历的原则,该右子树节点表示的数学公式为“log10”,则该右子树节点的值为1;最后计算根节点“+”的值,根据后续遍历原则,该根节点表示的数学公式是“2+1”,则该根节点的值为2。
通过该计算过程获得的结果“2”就是用户输入的内容对应的计算结果,将该计算结果显示在所述搜索框中,即完成了本次基于搜索框的计算。
在另一实施例中,如图5所示,所述基于搜索框的计算方法还可以包括步骤S120,当检测到用户删除所述用于启动计算的字符时,则将所述用户输入的内容对应的联想内容或搜索结果显示在所述搜索框中。
具体的,如图6所示的,当用户输入了用于启动计算的字符“=”后,又通过删除键将“=”删除,则会认为用户操作由获得计算结果改为对输入的内容进行搜索,因此将所述用户输入的内容对应的联想内容或搜索结果显示在所述搜索框中。当用户进一步如图7所示的输入“*5”,并如图8所示的输入“=”时,则会认为用户从“22+3-5”到“*5”的内容均是为获得计算结果,因此将该数学公式“22+3-5”的计算结果“20”与“*5”再进行计算后,将最终的结果“100”显示在所述搜索框中。
本实施例所述的基于搜索框的计算方法,可以根据用于启动计算的字符,将用户输入的内容解析为表示数学公式的二叉树,并将该二叉树对应的数学公式的计算结果直接显示在搜索框中,使移动终端用户无需通过第三方应用即可获得所见即所得的计算结果,从而降低了操作成本,为移动终端用户提供了较好的用户体验。
根据本发明的另一方面,还提供了一种基于搜索框的计算装置。如图9中所示,该计算装置主要包括:用于接收用户输入的内容,当检测到用于启动计算的字符时,则根据二叉树规则对所述用户输入的内容进行解析的装置(以下简称“接收解析单元“)800及用于若所述用户输入的内容能够解析成二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中的装置(以下简称”计算显示单元“)810。
如图10所示,所述基于搜索框的计算装置的执行过程包括:
接收解析单元800首先监测用户是否输入了用于启动计算的字符,本实施例中优选“=”作为启动计算的字符。当检测到用户输入“=”后,根据二叉树规则对用户输入的内容进行解析。若接收解析单元800未检测到用户输入了用于启动计算的字符,则继续监测。
随后,计算显示单元810用于,若所述用户输入的内容能够解析成二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中
计算显示单元810具体可用于若所述用户输入的内容能够解析成满足预定条件的二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中。其中的二叉树可以是每个节点最多有两个子树的树形结构,并且包括完全二叉树、满二叉树、平衡二叉树等形式的二叉树均可用于本实施例的基于搜索框的计算装置。当任意一种用户输入的内容能够被解析成满足预定条件的二叉树时,即表示该二叉树能够被识别为数学公式,最后可由移动终端将该数学公式对应的计算结果显示在搜索框中。
可选的,在计算显示单元810中,所述预定条件包括:
条件1、二叉树的叶子节点都是操作数,所述二叉树的非叶子节点都是操作符。
该条件1是为了对输入的内容进行计算时,能够将二叉树还原成数学公式,通过二叉树表示数学公式,能够为数学计算提供较高的效率,而如果采用直接对数学公式计算的方式,则需要对整个数学公式识别一遍后找到优选级最高的操作符,然后依次对优先级较低的操作符进行计算,因此采用二叉树表示数学公式能够提高计算效率,从而提升用户的使用体验。
条件2、每个非叶子节点的操作符的优先级低于该非叶子节点的子树节点上的操作符的优先级。
该条件2是为了区分操作符的优先级,从而在遍历二叉树的过程中即可对当前遍历的操作符进行计算,而无需比较多个操作符之间的优先级,进一步提升了计算效率。
当用户输入的内容解析成的二叉树同时满足条件1和条件2时,则可判断用户输入的内容是数学公式。
进一步可选的,所述预定条件还包括:
条件3,对于具有两个操作数的操作符所在的节点,将所述用户输入的内容中位于该操作符左侧的操作数设置在该操作符所在节点的左子树节点,将所述用户输入的内容中位于该操作符右侧的操作数设置在该操作符所在节点的右子树节点。
该条件3是针对“+”、“*”、“^”等具有两个操作数的操作符时,该两个操作数不会因为设置在子树的位置错误而导致整个属性公式的计算结果错误。可以理解的,该两个操作数不仅可以分别设置在左子树节点和右子树节点上,任何能够对该两个操作数的位置进行区分的方式均可使用在本实施例中。
条件4,对于具有一个操作数的操作符所在的节点,该操作数设置在该操作符所在的节点的左子树节点。
该条件4是针对“sin”、“tan”、“log”等具有一个操作数的操作符时,该一个操作数不会因为设置在子树的位置不统一而导致整个公式的计算结果错误。可以理解的,该一个操作数不仅可以设置在左子树节点上,也可以设置在右子树节点上,并且任何能够统一对该一个操作数的位置进行规定的方式均可使用在本实施例中。
当用户输入的内容解析成的二叉树同时满足条件1和条件2时,则认为用户输入的内容是数学公式。当用户输入的内容解析成的二叉树同时满足条件3和条件4,也可只满足条件3和条件4中的一个。例如用户输入的内容既包括具有两个操作数的操作符也包括具有一个操作数的操作符时,则需要同时满足条件3和条件4;当用户输入的内容只包括具有两个操作数的操作符或者只包括具有一个操作数的操作符时,可以只满足条件3或条件4中的一个。
以上所列举的条件仅为例举,本领域技术人员应理解还有其他可适用于本发明的条件,也应落入本发明的保护范围,为简明起见,仅以引用方式包含于此,而不做赘述。
以下结合图3来说明根据本发明的基于搜索框的计算方法的一个实例:
如图3所示,当用户输入“22+3-5”时,只在搜索框的下方提供该输入的内容的联想内容,而不会触发对该输入的内容的计算过程。当用户继续输入“=”时,则触发了对“=”之前输入的内容的计算过程。该用户输入的“22+3-5”的计算结果为“20”,则在搜索框中的“=”后显示“20”,从而完成一次对用户输入内容的计算及显示。
在触发对用户输入的内容的计算过程后,接收解析单元800首先可将所述用户输入的内容解析为二叉树,该二叉树包括由至少一个操作符和操作数组成的树形层次结构。以用户输入的内容是1*2+log10为例,该输入的内容可解析为如图4所示的二叉树,其中的“*”、“+”及“log”均可视为操作符,“1”、“2”及“10”均可视为操作数。
若根据二叉树规则无法将所述用户输入的内容解析成二叉树,例如用户输入的内容是“1*2申请log10”,由于“申请”无法被识别为任何操作符,则“1*2”和“log10”只能被解析成单独的二叉树,所以该输入的内容无法被解析成一个完整的二叉树,此时可以认为用户并不是需要对输入的内容进行计算,因此可将所述用户输入的内容对应的联想内容或搜索结果显示在所述搜索框中。
可选地,计算显示单元810可通过调用计算器应用程序来对所述二叉树对应的数学公式进行计算或由自带的计算模块来对所述二叉树对应的数学公式进行计算。
优选的,考虑到移动终端的计算能力以及用户的输入体验,本实施例可只对+、-、*、÷、sin函数、cos函数、tan函数、ctg函数、阶乘函数(!)、幂函数(^)、对数(log)以及括号等基本数学运算进行计算,自定义变量则可认为是不属于操作符和操作数的内容而不会被用于计算。
因此,对于如图4所示的二叉树,计算显示单元810可以从根节点开始,先递归计算出其左子树节点和右子树节点的值,再根据数学运算计算出根节点的值即可,即整个计算过程是对二叉树的后序遍历。具体的计算过程包括:首先计算根节点“+”的左子树节点“*”,根据后序遍历的原则,该左子树节点表示的数学公式为“1*2”,则该左子树节点的值为“2”;然后计算根节点“+”的右子树节点“log”,根据后序遍历的原则,该右子树节点表示的数学公式为“log10”,则该右子树节点的值为1;最后计算根节点“+”的值,根据后续遍历原则,该根节点表示的数学公式是“2+1”,则该根节点的值为2。
计算显示单元810通过该计算过程获得的结果“2”就是用户输入的内容对应的计算结果,并将该计算结果显示在所述搜索框中,即完成了本次基于搜索框的计算。
在一个具体实施例中,所述计算显示单元810中包括有计算子单元(未示出)与显示子单元(未示出),其中,该计算子单元用于从所述二叉树的根节点开始后序遍历所述根节点的左子树节点和右子树节点的值,再根据数学运算计算出所述根节点的值,将所述根节点的值作为所述用户输入的内容的计算结果。随后,显示子单元,将所述计算结果显示在所述搜索框中。
在另一实施例中,如图11所示,所述基于搜索框的计算装置还可以包括用于当检测到用户删除所述用于启动计算的字符时,则将所述用户输入的内容对应的联想内容或搜索结果显示在所述搜索框中的装置(以下简称“搜索显示单元”)820。该搜索显示单元820用于当检测到用户删除所述用于启动计算的字符时,则将所述用户输入的内容对应的联想内容或搜索结果显示在所述搜索框中。
具体的,如图6所示的,当用户输入了用于启动计算的字符“=”后又通过删除键将“=”删除,则会认为用户操作由获得计算结果改为对输入的内容进行搜索,因此搜索显示单元820将所述用户输入的内容对应的联想内容或搜索结果显示在所述搜索框中。当用户进一步如图7所示的输入“*5”,并如图8所示的输入“=”时,则会认为用户从“22+3-5”到“*5”的内容均是为获得计算结果,因此搜索显示单元820将该数学公式“22+3-5”的计算结果“20”与“*5”再进行计算后,将最终的结果“100”显示在所述搜索框中。
本实施例所述基于搜索框的计算装置,可以根据用于启动计算的字符,将用户输入的内容解析为表示数学公式的二叉树,并将该二叉树对应的数学公式的计算结果直接显示在搜索框中,使移动终端用户无需通过第三方应用即可获得所见即所得的计算结果,从而降低了操作成本,为移动终端用户提供了较好的用户体验。
需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,本发明的各个装置可采用专用集成电路(ASIC)或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
虽然前面特别示出并且描述了示例性实施例,但是本领域技术人员将会理解的是,在不背离权利要求书的精神和范围的情况下,在其形式和细节方面可以有所变化。这里所寻求的保护在所附权利要求书中做了阐述。在下列编号条款中规定了各个实施例的这些和其他方面:
1、一种基于搜索框的计算方法,其包括:
接收用户输入的内容,当检测到用于启动计算的字符时,则根据二叉树规则对所述用户输入的内容进行解析;
若所述用户输入的内容能够解析成二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中。
2、条款1的方法,所述若所述用户输入的内容能够解析成二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中的步骤包括:
-若所述用户输入的内容能够解析成满足预定条件的二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中。
3、条款2的方法,所述预定条件包括:
所述二叉树的叶子节点都是操作数,所述二叉树的非叶子节点都是操作符;以及
每个非叶子节点的操作符的优先级低于该非叶子节点的子树节点上的操作符的优先级。
4、条款3的方法,所述预定条件还包括:
对于具有两个操作数的操作符所在的节点,将所述用户输入的内容中位于该操作符左侧的操作数设置在该操作符所在的节点的左子树节点,将所述用户输入的内容中位于该操作符右侧的操作数设置在该操作符所在的节点的右子树节点;和/或
对于具有一个操作数的操作符所在的节点,该操作数设置在该操作符所在的节点的左子树节点。
5、条款2的方法,所述获取二叉树对应的数学公式的计算结果的过程包括:
从所述二叉树的根节点开始后序遍历所述根节点的左子树节点和右子树节点的值,再根据数学运算计算出根节点的值,将所述根节点的值作为所述用户输入的内容的计算结果。
6、条款1至5任意一条的方法,其中,所述方法还包括:
当检测到用户删除所述用于启动计算的字符时,则将所述用户输入的内容对应的联想内容或搜索结果显示在所述搜索框中。
7、一种基于搜索框的计算装置,其包括:
接收解析单元,用于接收用户输入的内容,当检测到用于启动计算的字符时,则根据二叉树规则对所述用户输入的内容进行解析;
计算显示单元,用于若所述用户输入的内容能够解析成二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中。
8、条款7的装置,所述计算显示单元用于,若所述用户输入的内容能够解析成满足预定条件的二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中。
9、条款8的装置,所述预定条件包括:
所述二叉树的叶子节点都是操作数,所述二叉树的非叶子节点都是操作符;以及
每个非叶子节点的操作符的优先级低于该非叶子节点的子树节点上的操作符的优先级。
10、条款9的装置,所述预定条件还包括:
对于具有两个操作数的操作符所在的节点,将所述用户输入的内容中位于该操作符左侧的操作数设置在该操作符所在的节点的左子树节点,将所述用户输入的内容中位于该操作符右侧的操作数设置在该操作符所在的节点的右子树节点;和/或
对于具有一个操作数的操作符所在的节点,该操作数设置在该操作符所在的节点的左子树节点。
11、条款8的装置,所述计算显示单元包括:
计算子单元,用于从所述二叉树的根节点开始后序遍历所述根节点的左子树节点和右子树节点的值,再根据数学运算计算出根节点的值,将所述根节点的值作为所述用户输入的内容的计算结果。
12、条款7至11任意一条的装置,所述装置还包括:
搜索显示单元,用于当检测到用户删除所述用于启动计算的字符时,则将所述用户输入的内容对应的联想内容或搜索结果显示在所述搜索框中。

Claims (12)

1.一种基于搜索框的计算方法,其中,包括:
接收用户输入的内容,当检测到用于启动计算的字符时,则根据二叉树规则对所述用户输入的内容进行解析;
若所述用户输入的内容能够解析成二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中。
2.根据权利要求1所述的方法,其中,所述若所述用户输入的内容能够解析成二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中的步骤包括:
-若所述用户输入的内容能够解析成满足预定条件的二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中。
3.根据权利要求2所述的方法,其中,所述预定条件包括:
所述二叉树的叶子节点都是操作数,所述二叉树的非叶子节点都是操作符;以及
每个非叶子节点的操作符的优先级低于该非叶子节点的子树节点上的操作符的优先级。
4.根据权利要求3所述的方法,其中,所述预定条件还包括:
对于具有两个操作数的操作符所在的节点,将所述用户输入的内容中位于该操作符左侧的操作数设置在该操作符所在的节点的左子树节点,将所述用户输入的内容中位于该操作符右侧的操作数设置在该操作符所在的节点的右子树节点;和/或
对于具有一个操作数的操作符所在的节点,该操作数设置在该操作符所在的节点的左子树节点。
5.根据权利要求2所述的方法,其中,所述获取二叉树对应的数学公式的计算结果的过程包括:
从所述二叉树的根节点开始后序遍历所述根节点的左子树节点和右子树节点的值,再根据数学运算计算出根节点的值,将所述根节点的值作为所述用户输入的内容的计算结果。
6.根据权利要求1至5任意一项所述的方法,其中,所述方法还包括:
当检测到用户删除所述用于启动计算的字符时,则将所述用户输入的内容对应的联想内容或搜索结果显示在所述搜索框中。
7.一种基于搜索框的计算装置,其中,包括:
接收解析单元,用于接收用户输入的内容,当检测到用于启动计算的字符时,则根据二叉树规则对所述用户输入的内容进行解析;
计算显示单元,用于若所述用户输入的内容能够解析成二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中。
8.根据权利要求7所述的装置,其中,所述计算显示单元用于,若所述用户输入的内容能够解析成满足预定条件的二叉树,则获取所述二叉树对应的数学公式的计算结果,并将所述计算结果显示在所述搜索框中。
9.根据权利要求8所述的装置,其中,所述预定条件包括:
所述二叉树的叶子节点都是操作数,所述二叉树的非叶子节点都是操作符;以及
每个非叶子节点的操作符的优先级低于该非叶子节点的子树节点上的操作符的优先级。
10.根据权利要求9所述的装置,其中,所述预定条件还包括:
对于具有两个操作数的操作符所在的节点,将所述用户输入的内容中位于该操作符左侧的操作数设置在该操作符所在的节点的左子树节点,将所述用户输入的内容中位于该操作符右侧的操作数设置在该操作符所在的节点的右子树节点;和/或
对于具有一个操作数的操作符所在的节点,该操作数设置在该操作符所在的节点的左子树节点。
11.根据权利要求8所述的装置,其中,所述计算显示单元包括:
计算子单元,用于从所述二叉树的根节点开始后序遍历所述根节点的左子树节点和右子树节点的值,再根据数学运算计算出根节点的值,将所述根节点的值作为所述用户输入的内容的计算结果。
12.根据权利要求7至11任意一项所述的装置,其中,所述装置还包括:
搜索显示单元,用于当检测到用户删除所述用于启动计算的字符时,则将所述用户输入的内容对应的联想内容或搜索结果显示在所述搜索框中。
CN201510071164.8A 2015-02-10 2015-02-10 一种基于搜索框的计算方法及装置 Pending CN104615737A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510071164.8A CN104615737A (zh) 2015-02-10 2015-02-10 一种基于搜索框的计算方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510071164.8A CN104615737A (zh) 2015-02-10 2015-02-10 一种基于搜索框的计算方法及装置

Publications (1)

Publication Number Publication Date
CN104615737A true CN104615737A (zh) 2015-05-13

Family

ID=53150179

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510071164.8A Pending CN104615737A (zh) 2015-02-10 2015-02-10 一种基于搜索框的计算方法及装置

Country Status (1)

Country Link
CN (1) CN104615737A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729001A (zh) * 2017-09-08 2018-02-23 北京京东尚科信息技术有限公司 一种表达式处理方法和装置
CN108537183A (zh) * 2018-04-13 2018-09-14 拉扎斯网络科技(上海)有限公司 公式自动识别方法、装置、电子设备及存储介质
CN109582630A (zh) * 2018-10-26 2019-04-05 深圳点猫科技有限公司 基于教育系统实现通过搜索框进行计算的方法、电子设备
CN110807042A (zh) * 2018-07-20 2020-02-18 武汉烽火众智智慧之星科技有限公司 一种sql语句生成系统及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090089260A1 (en) * 2007-09-27 2009-04-02 Chong Benedict T Quick Searching UI for a Better User Experience
CN102004613A (zh) * 2010-12-07 2011-04-06 无锡永中软件有限公司 表达式的树状显示方法及求值方法
CN103324757A (zh) * 2013-07-09 2013-09-25 百度在线网络技术(北京)有限公司 移动终端中应用程序的搜索方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090089260A1 (en) * 2007-09-27 2009-04-02 Chong Benedict T Quick Searching UI for a Better User Experience
CN102004613A (zh) * 2010-12-07 2011-04-06 无锡永中软件有限公司 表达式的树状显示方法及求值方法
CN103324757A (zh) * 2013-07-09 2013-09-25 百度在线网络技术(北京)有限公司 移动终端中应用程序的搜索方法和装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
何志宏等: "表达式与二叉树的相互转换", 《电脑知识与技术》 *
倚楼: "用活搜索框 计算更方便", 《电脑爱好者》 *
陈海珠: "基于二叉树的算术表达式计算与实现", 《中国科技信息》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107729001A (zh) * 2017-09-08 2018-02-23 北京京东尚科信息技术有限公司 一种表达式处理方法和装置
CN108537183A (zh) * 2018-04-13 2018-09-14 拉扎斯网络科技(上海)有限公司 公式自动识别方法、装置、电子设备及存储介质
CN110807042A (zh) * 2018-07-20 2020-02-18 武汉烽火众智智慧之星科技有限公司 一种sql语句生成系统及方法
CN110807042B (zh) * 2018-07-20 2023-02-24 武汉烽火众智智慧之星科技有限公司 一种sql语句生成系统及方法
CN109582630A (zh) * 2018-10-26 2019-04-05 深圳点猫科技有限公司 基于教育系统实现通过搜索框进行计算的方法、电子设备

Similar Documents

Publication Publication Date Title
JP7393358B2 (ja) 正規表現生成のためのユーザインターフェイス
US10452703B2 (en) Using ontologies to comprehend regular expressions
CN111782977B (zh) 兴趣点处理方法、装置、设备及计算机可读存储介质
CN111522967B (zh) 知识图谱构建方法、装置、设备以及存储介质
CN113094550B (zh) 视频检索方法、装置、设备和介质
CN108804516B (zh) 相似用户查找装置、方法及计算机可读存储介质
CN111488740B (zh) 一种因果关系的判别方法、装置、电子设备及存储介质
CN104615737A (zh) 一种基于搜索框的计算方法及装置
CN111090991B (zh) 场景纠错方法、装置、电子设备和存储介质
CN111177476A (zh) 数据查询方法、装置、电子设备及可读存储介质
CN104765526A (zh) 一种过滤候选词条的方法与装置
CN106372090A (zh) 一种查询聚类方法及装置
CN111274353B (zh) 文本切词方法、装置、设备和介质
CN111767442A (zh) 数据更新方法、装置、搜索服务器、终端及存储介质
CN104298786B (zh) 一种图像检索方法及装置
Rajkumar et al. Dynamic web page segmentation based on detecting reappearance and layout of tag patterns for small screen devices
CN111177479A (zh) 获取关系网络图中节点的特征向量的方法以及装置
CN116346777A (zh) 一种字典树域名匹配方法、装置、设备及存储介质
JP2012194876A (ja) モジュール解析システム、モジュール解析方法及びモジュール解析プログラム
CN105094362A (zh) 一种中文输入的方法和装置
US20220188292A1 (en) Data processing method, apparatus, electronic device and readable storage medium
KR102531507B1 (ko) 정보 출력 방법, 장치, 기기 및 저장 매체
CN113656533A (zh) 一种树形控件处理方法、装置及电子设备
CN105989147A (zh) 路径的规划方法及装置
CN109697167A (zh) 测试变量的管理方法、系统、电子设备和存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20150513

RJ01 Rejection of invention patent application after publication