一些题目,2024最新Python笔试题目

left++;

right–;

}

}

int main()

{

char arr[]=“abcdef”;

reverse_string(arr);

printf(“%s”,arr)

return 0;

}

方法二:用递归来写(递归必须有条件限制,并且每递归一次就要逼近条件)

1.a f 交换

2.逆序reverse_string(’‘b c d e’’);

int my_strlen(char* str)

{

int count=0;

while(*str !=‘\0’)

{

count++;

str++;

}

return count;

}

reverse_string(char* arr)

{

char tmp=arr[0];//第一个字符先放到临时变量去

int len=my_strlen(arr);

arr[0]=arr[len-1];//把最后一个字符放到第一个的位置

arr[len-1]=‘\0’;//最后一个字符的位置放\0

if(my_strlen(arr+1)>=2)

reverse_string(arr+1);//递归

arr[len-1]=tmp;

}

int main()

{

char arr[]=“abcdef”;

reverse_string(arr);

printf(“%s\n”

  • 23
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,请问具体是哪个题目呢? ### 回答2: 题目: 某银行需要统计每位客户每个月的账单总金额,并根据账单总金额进行分类,具体分为以下四种情况: - 总金额小于等于1000元,标记为"low" - 总金额大于1000元小于等于5000元,标记为"medium" - 总金额大于5000元小于等于10000元,标记为"high" - 总金额大于10000元,标记为"very high" 请编写一个Python函数,接收一个客户的账单信息(以列表形式表示),并返回该客户的分类。 示例输入:[500, 3000, 8000, 15000] 示例输出:"low" 解答: 可以使用Python的if-elif语句来实现对账单总金额的判断和分类。首先,需要定义一个函数,接收一个账单信息列表作为参数。然后,使用sum()函数来计算账单总额,并根据总额大小进行分类。最后,返回相应的分类结果。 以下是代码示例: ```python def classify_bill(bill_info): total_amount = sum(bill_info) if total_amount <= 1000: return "low" elif total_amount <= 5000: return "medium" elif total_amount <= 10000: return "high" else: return "very high" bill_info = [500, 3000, 8000, 15000] classification = classify_bill(bill_info) print(classification) ``` 运行代码将输出:"low",表示该客户的总账单金额分类为"low"。 ### 回答3: 银行笔试题:给定一个列表lst和一个整数k,编写一个函数,返回列表中第k大的元素。 解答: 首先,我们可以使用Python内置的排序函数对列表进行排序,然后返回倒数第k个元素即可。代码如下: ```python def find_kth_largest(lst, k): lst.sort() return lst[-k] ``` 然而,这种方法的时间复杂度较高,为O(nlogn),其中n为列表长度。我们可以考虑使用快速选择算法来优化时间复杂度。快速选择算法的基本思想是使用快速排序的划分思想,每次选择一个基准元素,将小于基准元素的放在左边,大于基准元素的放在右边。通过比较基准元素所在位置与k的大小关系,可以缩小搜索范围,进而快速找到第k大的元素。以下是使用快速选择算法实现的代码: ```python def partition(lst, left, right): pivot = lst[left] while left < right: while left < right and lst[right] <= pivot: right -= 1 lst[left] = lst[right] while left < right and lst[left] >= pivot: left += 1 lst[right] = lst[left] lst[left] = pivot return left def quick_select(lst, left, right, k): if left == right: return lst[left] pivot_index = partition(lst, left, right) if k == pivot_index: return lst[k] elif k < pivot_index: return quick_select(lst, left, pivot_index - 1, k) else: return quick_select(lst, pivot_index + 1, right, k) def find_kth_largest(lst, k): return quick_select(lst, 0, len(lst) - 1, len(lst) - k) ``` 使用快速选择算法,时间复杂度可以优化到O(n),其中n为列表长度。这个算法可以更快地找到第k大的元素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值