力扣 回文数 转字符串 java
时间: 2024-03-27 07:33:16 浏览: 16
力扣(LeetCode)是一个在线的编程学习平台,提供了大量的算法题目和编程挑战,旨在帮助开发者提升算法和数据结构的能力。回文数是指正序和倒序都相同的数字。下面是使用Java语言将回文数转换为字符串的示例代码:
```java
public class Solution {
public String intToString(int num) {
return String.valueOf(num);
}
public boolean isPalindrome(int num) {
String str = intToString(num);
int left = 0;
int right = str.length() - 1;
while (left < right) {
if (str.charAt(left) != str.charAt(right)) {
return false;
}
left++;
right--;
}
return true;
}
}
```
相关问题
力扣最长回文子串java
力扣最长回文子串的问题是一个经典的字符串处理问题。下面是一个使用Java实现的解法:
```java
public class Solution {
public String longestPalindrome(String s) {
if (s == null || s.length() < 2) {
return s;
}
int start = 0, end = 0;
for (int i = 0; i < s.length(); i++) {
int len1 = expandAroundCenter(s, i, i);
int len2 = expandAroundCenter(s, i, i + 1);
int len = Math.max(len1, len2);
if (len > end - start) {
start = i - (len - 1) / 2;
end = i + len / 2;
}
}
return s.substring(start, end + 1);
}
private int expandAroundCenter(String s, int left, int right) {
while (left >= 0 && right < s.length() && s.charAt(left) == s.charAt(right)) {
left--;
right++;
}
return right - left - 1;
}
}
```
这个解法使用了中心扩展法,遍历字符串中的每个字符,并以该字符为中心向两边扩展,寻找回文串的最大长度。同时,由于回文串的长度可以是奇数或偶数,所以需要分别考虑以当前字符为中心或以当前字符和下一个字符为中心的情况。
希望能够帮助到你!
力扣两数相加第二题java
力扣第二题是一道链表相关的题目,要求实现一个函数来将两个非负整数链表相加,并返回一个新的链表表示它们的和。
在解决这个问题时,可以设立一个表示进位的变量carried,并建立一个新的链表来存储结果。然后,使用while循环来同时处理两个输入链表,每次取出对应的节点值相加,并将结果加上进位值carried后的值作为一个新节点加入新链表的后面。当遍历完两个链表后,如果最后还有进位,需要再添加一个节点来存储进位的值。最后返回新链表的头节点即可。
下面是使用Java语言编写的实现代码:
```java
public class ListNode {
int val;
ListNode next;
ListNode(int x) { val = x; }
}
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode dummy = new ListNode(0);
int sum = 0;
ListNode cur = dummy;
ListNode p1 = l1, p2 = l2;
while (p1 != null || p2 != null) {
if (p1 != null) {
sum += p1.val;
p1 = p1.next;
}
if (p2 != null) {
sum += p2.val;
p2 = p2.next;
}
cur.next = new ListNode(sum % 10);
sum /= 10;
cur = cur.next;
}
if (sum == 1) {
cur.next = new ListNode(1);
}
return dummy.next;
}
}
```
以上就是力扣两数相加第二题的Java实现代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [【Java版】LeetCode 力扣第 2 题:两数相加 (Add Two Numbers)](https://blog.csdn.net/monokai/article/details/108132843)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]