1768. 交替合并字符串
给你两个字符串 word1 和 word2 。请你从 word1 开始,通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长,就将多出来的字母追加到合并后字符串的末尾。
返回 合并后的字符串 。
Python
原始思路:
class Solution:
def mergeAlternately(self, word1: str, word2: str) -> str:
word1_len = len(word1)
word2_len = len(word2)
length = word1_len if word1_len>word2_len else word2_len
text=''
for i in range(length):
if i<word1_len and i<word2_len:
text=text+word1[i]+word2[i]
elif i<word1_len:
text=text+word1[i]
elif i<word2_len:
text=text+word2[i]
return text
双指针思路:
class Solution:
def mergeAlternately(self, word1: str, word2: str) -> str:
word1_len,word2_len = len(word1),len(word2)
word1_index,word2_index = 0,0
text=''
while word1_index<word1_len or word2_index<word2_len:
if word1_index<word1_len:
text+=word1[word1_index]
word1_index+=1
if word2_index<word2_len:
text+=word2[word2_index]
word2_index+=1
return text
Java
因为公司发展方向为java,自己也要学习了。也要了解很多java知识。
class Solution {
public String mergeAlternately(String word1, String word2) {
int word1Len=word1.length();
int word2Len=word2.length();
int word1Index = 0;
int word2Index = 0;
StringBuilder text = new StringBuilder();
while (word1Index<word1Len || word2Index<word2Len){
if (word1Index<word1Len){
text.append(word1.charAt(word1Index));
word1Index++;
}
if (word2Index<word2Len){
text.append(word2.charAt(word2Index));
word2Index++;
}
}
return text.toString();
}
}
66. 加一
给定一个由 整数 组成的 非空 数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。
Python
思路:看到题目第一开始想只加1,只要当前位置不为9就不会出现进位情况,直接本位+1,之后其余不变。
如果为9则直接将本位变为0,对下一位进行+1。
如果所有位置都为9,那么需要增加一个位置为1。
class Solution:
def plusOne(self, digits: List[int]) -> List[int]:
for i in range(len(digits)-1,-1,-1):
if digits[i]!=9:
digits[i]+=1
return digits
else:
digits[i]=0
return [1]+digits
Java
class Solution {
public int[] plusOne(int[] digits) {
for(int i=digits.length-1;i>=0;i--)
if(digits[i]!=9){
digits[i]+=1;
return digits;
}else{
digits[i]=0;
}
int newDigits[]=new int[digits.length+1];
newDigits[0]=1;
return newDigits;
}
}