热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

LRU变形+reverse+pq存Map.Entry<String,Integer>

给一个string,一个整数k,每2k个char中前k个reverse,后k个不变。如果剩下的字符不满k个则把剩下的全部reverse,如果剩下大于k小于2k,那么前k个reverse,剩
 给一个string,一个整数 k, 每2k个char 中前k个reverse, 后k个不变。 如果剩下的字符不满k个则把剩下的全部reverse,如果剩下大于k小于2k,那么前k个reverse,剩下的不变。
eg.
"abcdefg" k = 2, output "bacdfeg"
秒了之后口头run了一下

 

class Solution {
public void reverse(String s, int k) {
if (s == null || s.length() <2) {
return;
}

int len = s.length();
int count = len / k;
int i = 0;
StringBuilder sb = new StringBuilder();
while (i if (i % 2 == 0) {
StringBuilder temp = new StringBuilder();
temp.append(s.substring(i * k, i * k + k));

sb.append(temp.reverse());
} else {
sb.append(s.substring(i * k, i * k + k));
}
i++;
}
if (len % k == 0) {
System.out.println(sb.toString());
return ;
}
if (count % 2 == 1) {
sb.append(s.substring(count * k, s.length()));
System.out.println(sb.toString());
return ;
} else {
StringBuilder temp = new StringBuilder();
temp.append(s.substring(count * k, s.length()));
sb.append(temp.reverse());
System.out.println(sb.toString());
return ;
}

}


public static void main(String[] args) {
// TODO Auto-generated method stub
Solution sol = new Solution();
String s = "abcdefg";
sol.reverse(s, 2);
}
}

 当我看到只有一个白大叔的时候心里一凉。。。这不会是礼节性第二轮面试吧。。。直接导致刚开始有点不兴奋。。。。
聊了下简历然后做了design的题目
1. web browser 的前进后退功能。要求实现一个class,有add url(访问新网址,有size上限k), goback, gofront分别能显示前后各访问过的所有网址。然后如果在后退了之后所在的页面访问了新网址,则丢弃所有原来的向前的页面。(基本上要求就是面试官一遍用电脑上的chrome给我秀,一边讲的)
eg. 访问顺序是 a-> b -> c -> d -> e -> f
然后后退回到d, 那么getback返回的就是c, b, a(按时间顺序), getfront返回的是e, f。如果在d这个页面又访问了新的页面 g, 那么就丢弃e, f。 把g放在d后面。
.鏈枃鍘熷垱鑷1point3acres璁哄潧
用list, 一个capacity的整数加上一个current page 的list::iterator就可以搞定。 搞完之后大哥说哎哟还有点时间,我们再design一个东西吧。。。。

2.twitter有个功能叫做hashtag 比如"#trump",要求设计一个class,能够记录所有的hashtag,以及被提及的次数,然后实现一个trending 功能,返回当前被提及次数最高的20个hashtag。说完大哥掏出手机又给我demo了一遍。。。这个没有要求细节的coding,详细的说了下实际的数据结构还有函数 怎么写就完了. 鐗涗汉浜戦泦,涓€浜╀笁鍒嗗湴

用了unordered_map记录每个hashtag的提及次数,又有用了个大小为20的map>保存最大的20个频率的值和有这么多频率的hashtag的名字,这里lz本来想把所有hashtag都放到map里,然后被质疑hashtag太多这样太慢,然后经过提醒,维护一个size为20的map,插入时间从lgn优化成o1。 获取前20 只要从最大的频率开始遍历map,凑满20个就行。 但是维护大小为20的map,每次frequency改变需要检查并且更新这个map。 


推荐阅读
  • 本文详细介绍了一种利用 ESP8266 01S 模块构建 Web 服务器的成功实践方案。通过具体的代码示例和详细的步骤说明,帮助读者快速掌握该模块的使用方法。在疫情期间,作者重新审视并研究了这一未被充分利用的模块,最终成功实现了 Web 服务器的功能。本文不仅提供了完整的代码实现,还涵盖了调试过程中遇到的常见问题及其解决方法,为初学者提供了宝贵的参考。 ... [详细]
  • 本指南从零开始介绍Scala编程语言的基础知识,重点讲解了Scala解释器REPL(读取-求值-打印-循环)的使用方法。REPL是Scala开发中的重要工具,能够帮助初学者快速理解和实践Scala的基本语法和特性。通过详细的示例和练习,读者将能够熟练掌握Scala的基础概念和编程技巧。 ... [详细]
  • 使用Maven JAR插件将单个或多个文件及其依赖项合并为一个可引用的JAR包
    本文介绍了如何利用Maven中的maven-assembly-plugin插件将单个或多个Java文件及其依赖项打包成一个可引用的JAR文件。首先,需要创建一个新的Maven项目,并将待打包的Java文件复制到该项目中。通过配置maven-assembly-plugin,可以实现将所有文件及其依赖项合并为一个独立的JAR包,方便在其他项目中引用和使用。此外,该方法还支持自定义装配描述符,以满足不同场景下的需求。 ... [详细]
  • 本文总结了JavaScript的核心知识点和实用技巧,涵盖了变量声明、DOM操作、事件处理等重要方面。例如,通过`event.srcElement`获取触发事件的元素,并使用`alert`显示其HTML结构;利用`innerText`和`innerHTML`属性分别设置和获取文本内容及HTML内容。此外,还介绍了如何在表单中动态生成和操作``元素,以便更好地处理用户输入。这些技巧对于提升前端开发效率和代码质量具有重要意义。 ... [详细]
  • 本文探讨了 Java 中 Pair 类的历史与现状。虽然 Java 标准库中没有内置的 Pair 类,但社区和第三方库提供了多种实现方式,如 Apache Commons 的 Pair 类和 JavaFX 的 javafx.util.Pair 类。这些实现为需要处理成对数据的开发者提供了便利。此外,文章还讨论了为何标准库未包含 Pair 类的原因,以及在现代 Java 开发中使用 Pair 类的最佳实践。 ... [详细]
  • 在前文探讨了Spring如何为特定的bean选择合适的通知器后,本文将进一步深入分析Spring AOP框架中代理对象的生成机制。具体而言,我们将详细解析如何通过代理技术将通知器(Advisor)中包含的通知(Advice)应用到目标bean上,以实现切面编程的核心功能。 ... [详细]
  • 本文介绍了UUID(通用唯一标识符)的概念及其在JavaScript中生成Java兼容UUID的代码实现与优化技巧。UUID是一个128位的唯一标识符,广泛应用于分布式系统中以确保唯一性。文章详细探讨了如何利用JavaScript生成符合Java标准的UUID,并提供了多种优化方法,以提高生成效率和兼容性。 ... [详细]
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
  • 本文深入解析了JDK 8中HashMap的源代码,重点探讨了put方法的工作机制及其内部参数的设定原理。HashMap允许键和值为null,但键为null的情况只能出现一次,因为null键在内部通过索引0进行存储。文章详细分析了capacity(容量)、size(大小)、loadFactor(加载因子)以及红黑树转换阈值的设定原则,帮助读者更好地理解HashMap的高效实现和性能优化策略。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 本文探讨了如何利用Java代码获取当前本地操作系统中正在运行的进程列表及其详细信息。通过引入必要的包和类,开发者可以轻松地实现这一功能,为系统监控和管理提供有力支持。示例代码展示了具体实现方法,适用于需要了解系统进程状态的开发人员。 ... [详细]
  • 分享一款基于Java开发的经典贪吃蛇游戏实现
    本文介绍了一款使用Java语言开发的经典贪吃蛇游戏的实现。游戏主要由两个核心类组成:`GameFrame` 和 `GamePanel`。`GameFrame` 类负责设置游戏窗口的标题、关闭按钮以及是否允许调整窗口大小,并初始化数据模型以支持绘制操作。`GamePanel` 类则负责管理游戏中的蛇和苹果的逻辑与渲染,确保游戏的流畅运行和良好的用户体验。 ... [详细]
  • 在Android应用开发中,实现与MySQL数据库的连接是一项重要的技术任务。本文详细介绍了Android连接MySQL数据库的操作流程和技术要点。首先,Android平台提供了SQLiteOpenHelper类作为数据库辅助工具,用于创建或打开数据库。开发者可以通过继承并扩展该类,实现对数据库的初始化和版本管理。此外,文章还探讨了使用第三方库如Retrofit或Volley进行网络请求,以及如何通过JSON格式交换数据,确保与MySQL服务器的高效通信。 ... [详细]
  • 在Eclipse中批量转换Java源代码文件的编码格式从GBK到UTF-8是一项常见的需求。通过编写简单的Java代码,可以高效地实现这一任务。该方法不仅适用于Java文件,还可以用于其他类型的文本文件编码转换。具体实现可以通过导入`java.io.File`类来操作文件系统,从而完成批量转换。此外,建议在转换过程中添加异常处理机制,以确保代码的健壮性和可靠性。 ... [详细]
  • HBase Java API 进阶:过滤器详解与应用实例
    本文详细探讨了HBase 1.2.6版本中Java API的高级应用,重点介绍了过滤器的使用方法和实际案例。首先,文章对几种常见的HBase过滤器进行了概述,包括列前缀过滤器(ColumnPrefixFilter)和时间戳过滤器(TimestampsFilter)。此外,还详细讲解了分页过滤器(PageFilter)的实现原理及其在大数据查询中的应用场景。通过具体的代码示例,读者可以更好地理解和掌握这些过滤器的使用技巧,从而提高数据处理的效率和灵活性。 ... [详细]
author-avatar
泱泱大国吴
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有