AC
两数之和
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 输入数组长度
int n = sc.nextInt();
int[] nums = new int[n];
// 输入目标值
int target = sc.nextInt();
// 输入数组元素
for (int i = 0; i < n; i++) {
nums[i] = sc.nextInt();
}
// 调用解法
int[] result = twoSum(nums, target);
// 输出为数组格式:[0,1]
System.out.println(Arrays.toString(result));
}
public static int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> map = new HashMap<>();
for (int i = 0; i < nums.length; i++) {
int need = target - nums[i];
if (map.containsKey(need)) {
return new int[]{map.get(need), i};
}
map.put(nums[i], i);
}
return null;
}
}
回文数
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();
System.out.println(isPalindrome(x));
}
public static boolean isPalindrome(int x) {
// 负数一定不是回文数,且以0结尾的数(除0本身)也不是回文数
if (x < 0 || (x % 10 == 0 && x != 0)) return false;
int reversed = 0;
while (x > reversed) {
reversed = reversed * 10 + x % 10;
x /= 10;
}
// x == reversed 是偶数长度,x == reversed/10 是奇数长度
return x == reversed || x == reversed / 10;
}
}
#include <iostream>
using namespace std;
bool isPalindrome(int x) {
if (x < 0 || (x % 10 == 0 && x != 0)) return false;
int reverted = 0;
while (x > reverted) {
reverted = reverted * 10 + x % 10;
x /= 10;
}
return x == reverted || x == reverted / 10;
}
int main() {
int x;
cin >> x;
cout << (isPalindrome(x) ? "true" : "false") << endl;
return 0;
}
def is_palindrome(x: int) -> bool:
if x < 0:
return False
return str(x) == str(x)[::-1]
if __name__ == "__main__":
x = int(input())
print("true" if is_palindrome(x) else "false")