首页 > 编程语言 >常见算法题

常见算法题

时间:2022-08-27 15:13:31浏览次数:52  
标签:string num2 int 常见 alen 算法 result blen

Golang

// 求2个很大数之和
func maxNumSum(a string, b string) string {
	size := 0
	alen := len(a)
	blen := len(b)
	if alen > blen {
		size = alen
	} else {
		size = blen
	}

	result := ""
	for i := 0; i < size; i++ {
		// 如果下标越界了,就设置为0
		num1 := 0
		if i < alen {
			// a[i]类型为byte(ascii码),和整型运算会报错,转换成对应整型就-48
			num1 = int(a[i]) - 48
		}

		num2 := 0
		if i < blen {
			num2 = int(b[i]) - 48
		}

		// 字符和整型相加会报错,string(num1+num2)会变成空字符,用Sprintf或strconv.Itoa
		result += fmt.Sprintf("%d", (num1 + num2))
	}

	return result
}

Nodejs

// 求2个很大数之和
function maxNumSum(a, b) {
	const alen = a.length;
	const blen = b.length;
	const len = alen > blen ? alen : blen;

	let result = "";
	for (let i=0; i<len; i++) {
	    // a[i]为对应字符,转换成整型才能相加,不然变成字符累加
	    const num1 = i < alen ? parseInt(a[i], 10) : 0;
	    const num2 = i < blen ? parseInt(b[i], 10) : 0;
	    // 字符和整型可以相加,自动转换成字符
            result += (num1 + num2)
    }

    return result;
}

Python

// 求2个很大数之和
def maxNumSum(a, b):
	alen = len(a)
	blen = len(b)
	size = alen if alen > blen else blen

	result = ""
	for i in range(size):
		// a[i]为对应字符,转换成整型才能相加,不然变成字符累加
		num1 = int(a[i]) if i < alen else 0
		num2 = int(b[i]) if i < blen else 0
		// 字符不能和整型直接累加,需要str转换成字符
		result += str(num1 + num2)

	return result

C#

// 求2个很大数之和
public static string maxNumSum(string a, string b) {
	int alen = a.Length;
	int blen = b.Length;
	int len = alen > blen ? alen : blen;

	string result = "";
	for (int i=0; i<len; i++) {
		// Console.WriteLine(a[i].GetType());
		// a[i]为char类型(ascii码),转换成对应整型-48,char可以直接和整型运算
		int num1 = i < alen ? a[i] - 48 : 0;
		int num2 = i < blen ? b[i] - 48 : 0;
		// 字符和整型可以相加,自动转换成字符
		result += (num1 + num2);
	}
	return result;
}

标签:string,num2,int,常见,alen,算法,result,blen
From: https://www.cnblogs.com/fanyang1/p/16630592.html

相关文章

  • dragonfly 蜻蜓算法 学习笔记
    1、GettingStated1.1CommandLine使用方法:在pycharm中:cdexamplepython..\bin\dragonfly-script.py--configxxx.json--optionxxx.txt1)BasicUse全局优化......
  • 算法题python用法
    算法题python用法大写变小写往后移动一位chr(ord(v.lower())+1)大写、小写、数字i.isalpha():#英文i.isspace()#空格​ifitem.isupper():#大写     a......
  • 【AGC】崩溃服务之常见问题
    ​ 1、崩溃服务后,应用出现崩溃闪退的情况。解决方案:1、如果是集成崩溃服务后,打开应用直接崩溃闪退,则有可能是崩溃服务未能进行正确的集成配置,需要按照以下步骤进行排查:......
  • 算法题
    回文字符串Manacher算法字符串aaabaLen数组有一个性质,那就是Len[i]-1就是以第i个字符为中心的回文子串在原字符串S中的长度。......
  • LeetCode 链表的中间结点算法题解 All In One
    LeetCode链表的中间结点算法题解AllInOnejs/ts实现重排链表链表的中间结点原理图解//快慢指针functionmiddleNode(head:ListNode|null):ListNode|n......
  • 有一个线性表,采用带头结点的单链表L来存储,设计一个算法将其逆置,且不能建立新节点,只能
    有一个线性表,采用带头结点的单链表L来存储,设计一个算法将其逆置,且不能建立新节点,只能通过表中已有的节点的重新组合来完成。分析:线性表中关于逆序的问题,就是用建立链表......
  • 【算法】二分
    y总二分模板y总模板链接boolcheck(intx){/*...*/}//检查x是否满足某种性质//区间[l,r]被划分成[l,mid]和[mid+1,r]时使用:intbsearch_1(intl,intr){......
  • 常见的设计模式-单例模式
    简述实现了类在当前进程中只有一个实例,比如python-GC重写__new__实现单例classA:def__new__(cls,*args,**kwargs):ifnothasattr(cls,'_instance......
  • java质数算法
    importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;importjava.stream.Collectors;importjava.stream.Stream;publicclassMain{publ......
  • Kruskal和Prim算法详解
    最小生成树概念(转载)假设一个国家有一些城市,这些城市可以互相连接起来,假设每两个城市之间的道路有很多条,那么一定存在这样的情况,可以用最少的路程连接各个城市。......