
iOS
Sephiroth.Ma
V+:Best_Oliver
展开
-
IOS与算法之字符串集合
给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标(下标从 0 开始)。如果 needle 不是 haystack 的一部分,则返回 -1。给定一个只包括 ‘(’,‘)’,‘{’,‘}’,‘[’,‘]’ 的字符串 s ,判断字符串是否有效。数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。每个右括号都有一个对应的相同类型的左括号。左括号必须用相同类型的右括号闭合。原创 2023-05-10 10:34:06 · 750 阅读 · 0 评论 -
iOS与算法之《最接近的三数之和》
该算法首先对数组进行排序。然后,遍历排序后的数组并选择一个数字作为三元组中的第一个数字。接下来,使用双指针算法在剩余的数字中查找两个数字,使它们的和等于目标值(即 target 减去当前数字)。如果当前和与目标值的差比当前最接近的和与目标值的差更小,则更新结果。最后返回最接近目标值的三数之和。原创 2023-05-10 10:07:45 · 140 阅读 · 0 评论 -
iOS与算法之《三数之和》
该算法首先对数组进行排序,然后遍历排序后的数组并选择一个数字作为三元组中的第一个数字。接下来,使用双指针算法在剩余的数字中查找两个数字,使它们的和等于目标值(即当前数字的相反数)。由于答案不能包含重复的三元组,因此我们需要跳过具有相同值的数字。这可以通过检查左右指针所在位置的前一个或后一个数字来实现。原创 2023-05-10 10:00:39 · 114 阅读 · 0 评论 -
iOS与算法之《回文数》
该算法的时间复杂度为 O(log n),空间复杂度为 O(1)。原创 2023-05-10 09:49:05 · 98 阅读 · 0 评论 -
iOS与算法之《 整数反转》
【代码】iOS与算法之《 整数反转》原创 2023-05-09 20:12:51 · 111 阅读 · 0 评论 -
iOS与算法之《最长回文子串》
longestPalindrome: 是该方法的名称,输入参数为一个 NSString 对象,输出也是一个 NSString 对象。取两种回文串中长度较大的一个,判断是否比当前最长回文子串的长度更长,如果是,则更新最长回文子串的起始位置和长度。遍历字符串中每个字符,以该字符为中心分别向左右扩展,寻找奇数长度和偶数长度的回文串,并记录其长度。首先判断字符串长度是否小于 2,如果是,则直接返回原字符串。初始化最长回文子串的起始位置为 0,长度为 1。原创 2023-05-09 20:07:27 · 83 阅读 · 0 评论 -
iOS与算法之《通配符匹配》
该算法使用动态规划方法实现通配符匹配。我们首先创建一个二维数组 dp,用于存储中间结果。然后,我们将空字符串和空模式设置为匹配,并处理第一行,即空字符串与非空模式。接下来,我们处理其余子问题。原创 2023-05-09 19:04:52 · 188 阅读 · 0 评论 -
iOS与算法之《找出字符串中第一个匹配项的下标》
【代码】iOS与算法之《找出字符串中第一个匹配项的下标》原创 2023-05-09 18:57:41 · 174 阅读 · 0 评论 -
iOS与算法之《电话号码的字母组合》
如果输入字符串为空,则直接返回空数组。如果已经处理了最后一个数字字符,则将结果字符串添加到结果列表中,并回溯到前一个数字字符。否则,我们继续处理下一个数字字符,并将其对应的字母作为结果字符串的下一个字符。如果当前数字字符已经在其字母集合的末尾,则回溯到前一个数字字符,并继续寻找可用的字母。否则,我们将当前字母添加到结果字符串中,并更新数字字符索引列表。在主循环中,我们从左到右遍历数字字符,并使用数字到字母映射字典获取对应的字母集合。我们使用一个数字字符索引列表来跟踪每个数字字符当前使用的字母位置。原创 2023-05-09 18:52:57 · 113 阅读 · 0 评论 -
iOS与算法之《罗马数字转整数》
如果当前字符的值大于或等于前一个字符的值,则需要将该值添加到结果中。例如,在 IX 中,第一个字符 I 的值为 1,而第二个字符 X 的值为 10。由于 I 在 X 的左边,所以我们需要在 X 的值中加上 I 的值,得到 9。如果当前字符的值小于前一个字符的值,则意味着需要减去当前值。例如,在 IV 中,第一个字符 I 的值为 1,而第二个字符 V 的值为 5。由于 I 在 V 的左边,所以我们需要在 V 的值中减去 I 的值,得到 4。然后,我们从右到左遍历罗马数字字符,并计算每个字符的值。原创 2023-05-09 18:46:17 · 106 阅读 · 0 评论 -
iOS与算法之《整数转罗马数字》
该算法使用贪心策略来将整数转换为罗马数字。我们首先创建两个数组,一个包含罗马数字的符号,另一个包含罗马数字的值。然后,我们按递减顺序遍历这两个数组中的元素,直到整数值为零。在每次迭代中,我们计算当前罗马数字可以重复的次数,并将其添加到结果字符串中。同时,我们从整数值中减去相应的阿拉伯数字值。最终,我们返回结果字符串作为罗马数字的表示形式。原创 2023-05-09 18:39:45 · 136 阅读 · 0 评论 -
iOS与算法之《字符串转换整数 (atoi)》
该算法首先移除前导空格,并处理正负号。然后它逐个字符地读取数字字符,并将其转换为整数。如果整数超出了 32 位有符号整数范围,则会截断该整数以使其保持在此范围内。要使用该函数,请调用 myAtoi 方法,并将要转换的字符串作为参数传递给它。原创 2023-05-09 18:21:08 · 209 阅读 · 0 评论 -
iOS与算法之《无重复字符的最长子串》
这个算法的基本思想是使用滑动窗口来维护最长不重复子串。我们还使用一个字典来存储每个字符在字符串中出现的最后位置(即上一次出现的位置)。当我们移动 right 指针时,我们检查当前字符是否已经在窗口中出现。如果是,则更新 left 指针以跳过前面的所有重复字符,并且将当前字符的位置添加到字典中。同时,我们还需要更新最长不重复子串的长度。要找到字符串中的最长不重复子串长度,只需调用 lengthOfLongestSubstring 方法,并将要计算的字符串作为参数传递给它即可。原创 2023-05-09 18:19:22 · 93 阅读 · 0 评论 -
iOS与算法之《正则表达式匹配-提取字符串中的数字》
然后,算法检查模式的第一个字符是否与字符串的第一个字符匹配。如果相匹配,则算法将继续对剩余的字符串和模式进行匹配。如果模式的下一个字符是 ‘*’,则算法可以选择跳过该字符或重复前一个字符,并在两种情况下继续递归搜索。它首先检查字符规律是否为空。如果是,则返回 true 如果要匹配的字符串为空;否则,如果要匹配的字符串不为空,则返回 false。最后,如果整个字符串都已匹配,并且整个模式也已处理完毕,则返回 true;否则,如果字符串没有全部匹配或者模式仍然存在未处理的字符,则返回 false。原创 2023-05-09 18:16:53 · 594 阅读 · 0 评论 -
iOS面试题集合
文章目录UIKit1.UIView 和 CALayer 是什么关系? ★★\color{red}{★★}★★2.Bounds 和 Frame 的区别? ★★\color{red}{★★}★★3.setNeedsDisplay 和 layoutIfNeeded 两者是什么关系?★★★\color{red}{★★★}★★★4.谈谈对UIResponder的理解★★★\color{red}{★★★}★★★5.loadView的作用?★\color{red}{★}★6.使用 drawRect有什么影响?★★\col转载 2021-01-16 22:41:42 · 2897 阅读 · 0 评论 -
iOS xib上的控件自动生成纯代码
最近公司写了一新项目,写完项目总结时发现,大部分时间都浪费在纯代码写一些简单的控件上,用xib布局吧,还怕为后期的维护给自己挖坑,总是纠结到底用纯代码,还是xib呢,纠结来纠结去突然灵感乍现✧(≖ ◡ ≖) 为什么不能用xib布局,让它自动生成相应的代码呢,安卓就有这类似的功能- -!!想到就着手开干,写了一个自动生成的工具,废话不多说介绍下我自己写的小工具就一个动态库,直接拖进工程即可,有兴...原创 2019-08-10 01:40:56 · 474 阅读 · 1 评论 -
iOS xib上的控件自动生成纯代码(Masonry篇)
之前写了一篇iOS xib上的控件自动生成纯代码这篇只是单纯的生成了控件简单代码,很多朋友说不能满足需求呀,因为之前代码因系统崩了,源码不见了,重写写了一份Masonry篇,此篇虽然为Masonry布局,但是主要还是需要自己改动,这个只是为了减少手动敲代码来布局,不能完全依靠生成的代码进行直接使用。此次改进只要针对代码的可辨识度,并生成完成的.m所有代码逻辑分为#import "Vie...原创 2019-08-10 01:27:50 · 472 阅读 · 0 评论