zoukankan      html  css  js  c++  java
  • 2018春招-今日头条笔试题-第二题(python)

    题目描述:2018春招-今日头条笔试题5题(后附大佬答案-c++版)

    解题思路:

    利用深度优先搜索

    #-*- coding:utf-8 -*-
    
    class DFS:
        '''
            num:用于存储最后执行次数
            n:用于存储最后达到的字符串的长度
            flag:当达到输入字符串的长度时,flag置为1
        '''
        def __init__(self,n):
            self.num=0
            self.n=n
            self.flag=0
    
        def fun(self,s,m):
            self.fun_1(s,m)
            self.fun_2(s,m)
            #当未达到字符串长度时,回溯
            if self.flag==0:
                self.num-=1
    
        #fun_1:方法1
        def fun_1(self,s,m):
            #当达到字符串长度,直接返回
            if self.flag == 0:
                if self.n < s:
                    return
                if self.n == s:
                    self.flag = 1
                    return
                else:
                    m = s
                    s += s
                    self.num += 1
                #没达到字符串长度,继续递归
                self.fun(s, m)
            else:
                return
    
        # fun_2:方法2
        def fun_2(self,s,m):
            if self.flag == 0:
                if self.n<s:
                    return
                if self.n==s:
                    self.flag=1
                    return
                else:
                    s=s+m
                    self.num+=1
                # 没达到字符串长度,继续递归
                self.fun(s,m)
            else:
                return
    n=input()
    dfs=DFS(n)
    dfs.fun(1,1)
    print dfs.num
  • 相关阅读:
    pe文件结构
    dll
    术语
    创建内存映射文件
    函数的调用约定
    串口
    linux 之 tcpdump
    linux 之程序管理
    perl 之eval
    2020-10-27_组合快捷键
  • 原文地址:https://www.cnblogs.com/ybf-yyj/p/8659884.html
Copyright © 2011-2022 走看看