21xrx.com
2024-12-22 21:41:43 Sunday
登录
文章检索 我的文章 写文章
C++编程题目及答案解析
2023-07-13 12:23:53 深夜i     --     --
C++编程 题目 答案解析 程序设计 算法

作为计算机科学中最基础的编程语言之一,C++在大量的编程竞赛和算法竞赛中都有广泛应用。这里我们整理了一些C++编程题目及答案解析,希望对想要成为优秀程序员的同学有所帮助。

1. 翻转字符串

题目描述:给定一个字符串,将其翻转。

解析:可以使用两个指针分别指向字符串首尾,然后依次交换两个指针所指向的字符,直至两个指针重合即完成翻转。

示例代码:


void reverseString(string& s) {

  int left = 0, right = s.size() - 1;

  while (left < right) {

    swap(s[left++], s[right--]);

  }

}

2. 判断一个数是不是回文数

题目描述:给定一个整数,判断它是否回文数。

解析:可以将整数转为字符串,然后按照翻转字符串的方法进行判断。也可以使用数学方法,将整数翻转后与原数字进行比较,如果相等就是回文数。

示例代码:


bool isPalindrome(int x) {

  if (x < 0) return false;

  int temp = x, rev = 0;

  while (temp > 0) {

    rev = rev * 10 + temp % 10;

    temp /= 10;

  }

  return rev == x;

}

3. 两数之和

题目描述:给定一个整数数组和一个目标值,找出数组中两个数之和等于目标值,并返回它们的下标。

解析:可以使用哈希表记录每个数的下标,然后依次遍历数组,对于每个数,计算出它与目标值的差值,判断差值是否在哈希表中,如果在就找到了一组答案。

示例代码:


vector<int> twoSum(vector<int>& nums, int target) {

  unordered_map<int, int> mp;

  for (int i = 0; i < nums.size(); ++i) {

    int complement = target - nums[i];

    if (mp.count(complement)) {

      return { mp[complement], i };

    }

    mp[nums[i]] = i;

  }

  return {};

}

本篇文章介绍了三道C++编程题目及答案解析,涵盖了字符串、数学和哈希表的相关知识点。希望对初学C++编程的同学有所帮助。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复