实现一个算法,确定一个字符串 s 的所有字符是否全都不同。

一个数组统计是否有

func isUnique(astr string) bool {var arr[26] int;for _,ch:=range astr{num:=ch-'a'if(arr[num]==1){return false}arr[num]++}return true
}

给定两个字符串 s1 和 s2,请编写一个程序,确定其中一个字符串的字符重新排列后,能否变成另一个字符串。

记录字符出现的个数,对比即可。

func CheckPermutation(s1 string, s2 string) bool {var arr[26] int;var brr[26] int;for _,ch:=range s1{arr[ch-'a']++;}for _,ch:=range s2{brr[ch-'a']++;}for i:=0;i<26;i++{if(arr[i]!=brr[i]){return false;}}return true;
}

URL化。编写一种方法,将字符串中的空格全部替换为%20。假定该字符串尾部有足够的空间存放新增字符,并且知道字符串的“真实”长度。(注:用Java实现的话,请使用字符数组实现,以便直接在数组上操作。)

func replaceSpaces(S string, length int) string {return strings.ReplaceAll(S[:length], " ", "%20")
}

注意第8行是个坑。动态length不能用注释中的方式初始化数组。

func replaceSpaces(S string, length int) string {num := 0for i:=0;i <length; i++ {if S[i] == ' ' {num++}}//var result[2*num + length] byte;result := make([]byte, 3*num + (length-num))k := 0for i:=0;i <length; i++ {if S[i] == ' ' {result[k] = '%'result[k+1] = '2'result[k+2] = '0'k += 3} else {result[k] = S[i]k++}}return string(result)
}

给定一个字符串,编写一个函数判定其是否为某个回文串的排列之一。

回文串是指正反两个方向都一样的单词或短语。排列是指字母的重新排列。

回文串不一定是字典当中的单词。

示例:

输入:"tactcoa"
输出:true(排列有"tacocat"、"atcocta",等等)

思路:至多有一个字符出现过奇数次。

func canPermutePalindrome(s string) bool {var arr[128] int;for _,ch:=range s{arr[ch]++;}num:=0for _,i:=range arr{num+=i%2;}return num<=1;
}

go语言快速刷《程序员面试金典》(1)相关推荐

  1. 程序员面试金典1.1

    程序员面试金典1.1 重新用java刷一遍,熟悉java语言 文章目录 程序员面试金典1.1 1. 二次遍历 2.哈希表Map 3.利用set的不可重复性 4.用数组 5.位运算 6.用String自 ...

  2. C#LeetCode刷题-程序员面试金典

    本文由 比特飞 原创发布,欢迎大家踊跃转载. 转载请注明本文地址:C#LeetCode刷题-程序员面试金典 | .Net中文网. C#LEETCODE刷题概述 概述 所有LeetCode程序员面试金典 ...

  3. 程序员面试金典面试题 01.06. 字符串压缩

    前言 本系列文章为<程序员面试金典>刷题笔记. 题目位置:字符串压缩 题集:程序员面试金典 题目 字符串压缩.利用字符重复出现的次数,编写一种方法,实现基本的字符串压缩功能.比如,字符串a ...

  4. 《程序员面试金典》+《算法导论》

    <程序员面试金典>+<算法导论> 因为最近可能会面临一波面试,但是自己各种算法以及常见的问题的熟悉程度感觉还不够,但是由前几次的代码优化经验来看,算法优化可以说是代码优化的重中 ...

  5. 程序员面试金典--第k个数

    程序员面试金典--第k个数 题目描述 有一些数的素因子只有3.5.7,请设计一个算法,找出其中的第k个数. 给定一个数int k,请返回第k个数.保证k小于等于100. 测试样例: 3 返回:7 逐个 ...

  6. 程序员面试金典 - 面试题 08.13. 堆箱子(DP)

    1. 题目 堆箱子.给你一堆n个箱子,箱子宽 wi.深 di.高 hi. 箱子不能翻转,将箱子堆起来时,下面箱子的宽度.高度和深度必须大于上面的箱子. 实现一种方法,搭出最高的一堆箱子.箱堆的高度为每 ...

  7. 程序员面试金典 - 面试题 17.08. 马戏团人塔(最长上升子序 DP/二分查找)

    文章目录 1. 题目 2. 解题 2.1 超时解 2.2 二分查找 1. 题目 有个马戏团正在设计叠罗汉的表演节目,一个人要站在另一人的肩膀上.出于实际和美观的考虑,在上面的人要比下面的人矮一点且轻一 ...

  8. 《程序员面试金典》解题目录(更新完毕)

    题目来源于LeetCode上的<程序员面试金典>,这里做一个目录方便大家查找.另外有本人的LeetCode解题目录.<剑指Offer>解题目录.LintCode代码能力测试CA ...

  9. 程序员面试金典——18.13 最大字母矩阵

    程序员面试金典--18.13 最大字母矩阵 在牛客网上把此题的难度给大大降低了......... Solution1: 参考网址:https://www.nowcoder.com/questionTe ...

  10. 程序员面试金典——18.12最大和子矩阵

    程序员面试金典--18.12最大和子矩阵 Solution1: 参考网址: [1]https://www.cnblogs.com/GodA/p/5237061.html 思想讲的很清楚~ [2]htt ...

最新文章

  1. 刘群:华为诺亚方舟NLP预训练模型工作的研究与应用 | AI ProCon 2019
  2. Spring Boot 2 (四):使用 Docker 部署 Spring Boot
  3. 【RecyclerView】 十五、使用 ItemTouchHelper 实现 RecyclerView 拖动排序 ( ItemTouchHelper 简介 )
  4. android唤醒前台,Android将后台应用唤起到前台的方法 (SDK 4.0, ActivityLifecycleCallbacks)...
  5. django新建php文件,在Python的Django框架中创建语言文件
  6. python中if __name__ == __main__的解释
  7. 数据库事务和并发控制
  8. 使用MFC里的类的方法
  9. 角点检测--基于梯度的方法(Moravec角点检测、Harris角点检测、Shi-Tomasi角点检测)
  10. 1065. 单身狗(25)-PAT乙级真题
  11. oracle 快照过旧怎么回退_我的世界20w45a:1.17首个快照!加入水晶、蜡烛、口袋、铜锭……...
  12. LNMP的部署优化及压测
  13. MATLAB R2018b for Mac(数学分析软件)附matlab激活密钥
  14. team多网卡绑定、桥接的搭建、tcpdump抓包
  15. 机器视觉测量原理及其优势
  16. python找出连续的最长的字母串
  17. 如何整合润乾报表到spring boot项目
  18. openbmc-web3:添加语言
  19. 移动端测试——移动端基础
  20. 新闻图片处理软件:Microsoft Office Picture Manager

热门文章

  1. python不同数据的读入_python读写不同编码txt文件_python读写txt文件
  2. 中国电子计算机大学竞赛安徽分赛,我院学子喜获第十二届全国大学生数学竞赛安徽赛区15项一等奖...
  3. java值参_JAVA赋值和传参理解
  4. 五大算法之三--贪心算法
  5. make xdb file.php,SCWS入门使用指南
  6. python get方法请求参数_如何解决TypeError get()在使用get方法的Python请求中恰好接受2个参数(给定3个)...
  7. html5 css登录注册实现,html5+css3实现一款注册表单实例
  8. mysql行级锁作用_Mysql事务及行级锁的理解
  9. gridview databind 会导致页面刷新马_Innodb批量页面刷盘情况下的quot;两次写quot;
  10. 【转】.NET平台开发Mongo基础知识