Vic's blog Vic's blog
首页
  • 前端文章

    • JavaScript
    • Vue
    • HTML
    • CSS
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • TypeScript笔记
    • JS设计模式总结笔记
  • 微服务
  • Database
  • Python
  • 学习笔记

    • Java面试宝典
    • 《一个人工智能的诞生》笔记
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • 学习笔记

    • 《Git》学习笔记
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
  • 大数据
  • 微服务
  • Java面试
关于
  • 网站
  • 资源
  • Vue资源
  • Java面试真题汇总
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Vic xu

永远期待美好的事情将会发生
首页
  • 前端文章

    • JavaScript
    • Vue
    • HTML
    • CSS
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《JavaScript高级程序设计》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • TypeScript笔记
    • JS设计模式总结笔记
  • 微服务
  • Database
  • Python
  • 学习笔记

    • Java面试宝典
    • 《一个人工智能的诞生》笔记
  • 技术文档
  • GitHub技巧
  • 博客搭建
  • 学习笔记

    • 《Git》学习笔记
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
  • 大数据
  • 微服务
  • Java面试
关于
  • 网站
  • 资源
  • Vue资源
  • Java面试真题汇总
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 学习

  • 面试

    • 面试问题集锦
    • 华为机试刷题
    • 【转载】Java面试总结
    • JAVA并发十二连招,你能接住吗?
    • 大数据面试题100道
    • 字节终面:两个文件的公共url怎么找?
  • 心情杂货

  • 实用技巧

  • 友情链接
  • 更多
  • 面试
xushengli
2021-06-18

华为机试刷题

# 华为机试刷题

记录一些小问题和例题

# 华为机试刷题 记录一些小问题

import pytest


# 对于python中的字符串输入,可以写成S=input(),也可以写成S=input('')
@pytest.mark.parametrize("data", ['a'])
def test_in1str(data):
    s = str(data)
    li = s.split(' ')
    if li is None:
        print(-1)
    else:
        print(len(li[-1]))


# 字符串转ASCII码 ord() + 判断在字符内
@pytest.mark.parametrize("data", ['123ab你cde*()我'])
def test_ASCII(data):
    s_list = []
    for i in data:
        if 0 < ord(i) < 127 and i not in s_list:
            s_list.append(i)
            print(i)


# set去重和排序 set()
@pytest.mark.parametrize("data", [[1, 3, 1, 4, 6, 8, 9, 2, 2]])
def test_set(data):
    lists = set(data)
    for i in lists:
        print(i)


# 字符串的切片和赋值 [:8]
@pytest.mark.parametrize("data", ['13245', '1324657896546', '6666'])
def test_set(data):
    li = []
    while (len(data) > 8):
        li.append(data[:8])
        data = data[8:]
    if len(data) < 8:
        num = 8 - len(data)
        sub = ''
        for i in range(num):
            sub += '0'
        li.append((data + sub))
    else:
        li.append(data)
    for i in li:
        print(i)


# 进制转换 hex() 和 eval()
@pytest.mark.parametrize("data", [6888])
def test_hex(data):
    print("\n" + hex(data))
    print(eval(hex(data)))


# 求最小质因数,要细心计算,尤其是更新变量的步骤
@pytest.mark.parametrize("data", [68880])
def test_minFactor(data):
    num = []
    i = 2
    while i <= data:
        if data % i != 0:
            i += 1
        elif data % i == 0:
            num.append(i)
            num.append(" ")
            data /= i
        elif data == 1:
            break
    for i in num:
        print(i, end="")


# 四舍五入 int()
@pytest.mark.parametrize("data", [68880.8])
def test_round(data):
    print(int(data + 0.5))


# map函数是将int类型和数值进行映射,也就是进行类型转换,对于字典按值排序问题,直接使用sorted(dict.keys())
@pytest.mark.parametrize("data", ["16888064652555"])
def test_mapSort(data):
    dict1 = {}
    for i in range(int(data)):
        key, value = map(int, str(data).split(), i)
        if key in dict1.keys():
            dict1[key] += value
        else:
            dict1[key] = value
    dict2 = sorted(dict1.keys())
    for i in dict2:
        print(i, dict1[i])


# 从右往左返回整数
@pytest.mark.parametrize("data", [1688806465255])
def test_intNum(data):
    if data != None:
        num_list = []
        data_new = str(data)[::-1]
        for i in data_new:
            if int(i) not in num_list:
                num_list.append(int(i))
        num = 0
        length = len(num_list) - 1
        for i in num_list:
            num += (i * (10 ** length))
            length -= 1
        print(num)
    else:
        print('INPUT NONE')


# 逆序输出 [::-1]
@pytest.mark.parametrize("data", [16888064650025500])
def test_inverse(data):
    if data != None:
        data_new = str(data)[::-1]
        print(data_new)
    else:
        print('INPUT NONE')


# 对于元素值都是字符串的列表一样可以排序,使用sort()函数
@pytest.mark.parametrize("data", [['16', '88', 'D', '806', 'OO', '4650025500']])
def test_SORT(data):
    data.sort();
    for i in data:
        print(i)


# 将十进制转换成二进制函数,使用bin()函数
@pytest.mark.parametrize("data", [16, 88, 806, 100, 4650025500])
def test_SORT(data):
    count = 0
    for i in bin(data):
        if i == '1':
            count += 1
    print(count)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
编辑 (opens new window)
上次更新: 2021/08/26, 14:16:32
面试问题集锦
【转载】Java面试总结

← 面试问题集锦 【转载】Java面试总结→

最近更新
01
万字长文:选 Redis 还是 MQ,终于说明白了!
10-11
02
Typora+gitee+自定义命令实现图床
09-13
03
字节终面:两个文件的公共url怎么找?
09-09
更多文章>
Theme by Vdoing | Copyright © 2019-2022 Vic | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×