北京望京SOHO-电商墨镜面试题

我去面试,boos 给出了个。动态规划的题目:

‘’‘’‘’

A = "asdf"
B = "axazxcv"

S = "axasazdxfcv"

字符串A  和 字符串B  A 和 B 拆散组合成 S。 但是相对位置上不能变。判断 S 这个字符串,是否是由 AB 组成并且 相对位置不变, 如果是 返回Ture  否则False

##注:A串 和 B串。 是有重复的的字符的。 暂且忽略特殊字符的问题。 例:  A = "asdf"  B = "axazxcv"  S = "axasazdxfcv"  return Ture  =============================================  A = "asdf"  B = "axazxcv"  S = "xaasazdxfcv"  return False

初一判断 我当时的想法完全是错的。  以下的是回家的路上想到的。

1. 因为重复的问题,所以就不能单单的只靠 一个字符单纯的判断, S串中的某一个字符, 是属于A的还是属于B的。

2. 所以一定是 S 的当前,某一个字符时,要判断一下 他前面的那个字符,是A的还是B的。

可以这样去理解:

A 表示为 A[0:i]      B 表示为 B[0:j]

S[0:i+j]   ==   A[0:i] + B[0:j]   ##(这里不是字符串拼接,)

A = "asdf"
B = "axazxcv"

S = "axasazdxfcv"

def static(A, B, S):
    if len(A+B) != len(S):  # 首先判断 两个的长度,是否相同。
        return False
    a = len(A)+1
    b = len(B)+1   # 初始化二维列表。
    li = [[[] for _ in range(a)] for _ in range(b)]
    li[0][0] = True
    for i in range(1, a):
        li[0][i] = li[0][i-1] and A[i-1] == S[i-1]

    for j in range(1, b):
        li[j][0] = li[j-1][0] and B[j-1] == S[j-1]  # 以上两部做的事情 可以看下面的图:
  # 这里才是开始计算
    for i in range(1, a):
        for j in range(1, b):
            li[j][i] = (li[j][i-1] and A[i-1] == S[i+j-1]) or (li[j-1][i] and B[j-1] == S[i+j-1])

    for n in li:
        print(n)
    return li[j][i]

以下是 运行的结果。


print(static(A, B, S))

[True, True, False, False, False]
[True, False, False, False, False]
[True, True, True, False, False]
[True, False, True, False, False]
[False, False, True, True, False]
[False, False, False, True, True]
[False, False, False, False, True]
[False, False, False, False, True]
True
           a      s     d      f     [True, True, False, False, False]
a [True, [], [], [], []]
x [True, [], [], [], []]
a [True, [], [], [], []]
z [False, [], [], [], []]
x [False, [], [], [], []]
c [False, [], [], [], []]
v [False, [], [], [], []]

# 这里就是判断出S这个字符串的 前A的长度位上,于A有几个相同,显示在 第一行。 # 前B 长度上,与B有几个相同。 显示在一列上。# 通过这个 应该就能看出, S这个字符串第一个位置上的字符, 是和 A 相同还是 B相同。 我的例子上,是两个都相同

然后接下来就是 不好理解的地方了。  从 S 这个字符串第二个索引的位置开始,判断一下这个位置上的字符,是来自A[0-i]的某一个,还是来自B[0-j]的某一个。并且要与前一个字符进行比较。比如:  S的第二个字符x 他是属于B这个串的,B这个串中 a 字符的位置是在,数组中li[j][i-1]的这个位置上。 S的第二个字符如果是 a 的话,那他就属于  A这个串的,在 li[j][i] 这个位置上就应该是 Ture。 但是他不属于。 所以是 False

问题的关键就是,把他理解成, 将 A 这个字符串拆散,然后随机的插入到了 B这个串的某一个位置上。然后 我们循环 去确定S这个串上的每一个字符, 与 A或者B 对应位置上的某个字符相等。再加上与前面结果的 比较。 只有前面的是 Ture的情况下,S的当前  的某个字符,才能够是Ture。 否则就是 False。

这样 一级一级的判断下去,到最后一个的时候,如何使Ture 那个整个字符串就是 匹配的, 否则就是不匹配。

原文地址:https://www.cnblogs.com/chengege/p/10976399.html

时间: 2024-10-31 19:14:59

北京望京SOHO-电商墨镜面试题的相关文章

Java电商项目面试题(三)

什么是数据库分片简单来说,就是指通过某种特定的条件,将我们存放在同一个数据库中的数据分散存放到多个数据库上面,以达到分散单台设备负载的效果.数据的切分(Sharding)根据其切分规则的类型,可以分为两种切分模式.1.一种是按照不同的表来切分到不同的数据库(主机)之上,这种切可以称之为数据的垂直切分2.另外一种则是根据表中的数据的逻辑关系,将同一个表中的数据按照某种条件拆分到多台数据库上面,这种切分称之为数据的水平切分.如何实现数据库分片当数据库分片后,数据由一个数据库分散到多个数据库中.此时系

Java电商项目面试题(四)

dubbo服务开发流程,运行流程?zookeeper注册中心的作用?使用流程:第一步:要在系统中使用dubbo应该先搭建一个注册中心,一般推荐使用zookeeper.第二步:有了注册中心然后是发布服务,发布服务需要使用spring容器和dubbo标签来发布服务.并且发布服务时需要指定注册中心的位置.第三步:服务发布之后就是调用服务.一般调用服务也是使用spring容器和dubbo标签来引用服务,这样就可以在客户端的容器中生成一个服务的代理对象,在action或者Controller中直接调用se

Java电商项目面试题(六)

插入商品的话,要求级联插入几张表,你们当时是怎么实现的?通过Redis生成商品编号(ID)保存商品表再保存Sku表(此表中外键,是商品表的ID)在青岛做了两年开发,大大小小参与过三个项目的开发,一个是某公司内部的人员管理系统,一个是物流项目,最近做的是一个电商项目.在整个项目中,我们采用的是nginx+tomcat来部署的(面试官会可能问nginx是谁来部署的?如何部署的?Nginx的执行流程,优点),nginx一方面做加载静态资源的服务器,另一方面来做反向代理和负载均衡.因为该项目需要在多个环

Java电商项目面试题(二)

什么是SolrCloudSolrCloud是Solr提供的分布式搜索方案,当你需要大规模,容错,分布式索引和检索能力时使用SolrCloud.当一个系统的索引数据量少的时候是不需要使用SolrCloud的,当索引量很大,搜索请求并发很高,这时需要使用SolrCloud来满足这些需求.SolrCloud是基于Solr和Zookeeper的分布式搜索方案,它的主要思想是使用Zookeeper作为集群的配置信息中心.它有几个特色功能:1)集中式的配置信息2)自动容错3)近实时搜索4)查询时自动负载均衡

王利芬对话蒲易 ——花店如何成为高端电商?_北京_歇会儿网

王利芬对话蒲易 --花店如何成为高端电商?_北京_歇会儿网 王利芬对话蒲易 --花店如何成为高端电商?王利芬对话蒲易 --花店如何成为高端电商?_北京_歇会儿网,布布扣,bubuko.com

京北商城惊艳上线,领跑互联网金融垂直电商

转载:链接 2015年3月18日,由京北金融主办的“互联网金融电商专题研讨会暨京北电商上线仪式”正式开启,这既是一次互联网金融与电商激情碰撞的行业盛会,更标志着国内首个专注互联网金融领域的电商平台——“京北电商”正式上线运营. 首先清华大学经济管理学院教授姜旭平发表了“互联网思维与商业模式创新”的主题演讲.他指出,互联网金融是传统金融的补充和挑战.传统金融是特点是高门槛,而且高度集权,把社会的资金都集中在银行,给我们的感觉阳春白雪.高高在上.与之相对应的新兴的互联网金融是网络时代的产物,门槛非常

未来跨境电商将由B2C转向B2B

为更好地促进校企人才交流,加大商务人才培养力度,提高企业的商务竞争力,商务部外贸发展事务局于4月23日在北京举行“12335企校对接活动暨企校交流会”.对外经贸大学教授王健在会上表示,未来跨境电子商务将由B2C转向B2B,整个制度体系和物流体系可能都要随之发生变化,政策导向应该从所谓零售或者是B2C更多地转向鼓励B2B. 活动由商务部外贸发展事务局主办.新华社<经济参考报>承办,主题为“适应经济发展新常态 培育外贸竞争新动力”.活动邀请了商协会代表.专家学者和相关企业代表,共同就“自主创新.高

京东618: 站在了电商下一轮风口,一定会赢得那个位置

2017年6月1日到6月18日,京东商城累计下单金额达1199亿元,累计卖出商品超过7亿件,这在京东历史上,是一个从未达到的新高度,也是一个新的起点.京东集团副总裁.京东商城居家生活事业部总裁辛利军在6月18日的媒体沟通会上说,"在这个电商行业里面,有的人站在现在的风口上,京东则站在下一轮的风口上,我相信我们会赢得那个位置." "能在网上卖家具吗?" 对于电商来说,家居家装品类是一个特殊的品类.网上购买家居家装品类,特别是买家具的最大担心点就是最后一公里配送和安装.

双十一 电商热延伸至房产行业

随着前期电商和房产行业的合作逐渐加深,可以预料的是,双十一这把火肯定会烧到房产行业.果不其然,以万科为首的房企在双十一准备大干一场,好好地卖他几套房. 在龙头房企万科宣布携手淘宝卖房之后,方兴地产在3日启动了"双11光盘节",主打跨界合作和房地产电商.同时,远洋地产也在酝酿"更好地拥抱互联",并计划在近期推出相关方案. 业内专家认为,这一尝试也可能带来房地产领域营销模式的转变.可以预见未来品牌房企还会加码房产电商的投资,最终成就房地产企业利用互联网"卖房子