关于字符串

import java.util.*; public class Main{ public static void main(String [] args) { Scanner sc=new Scanner(System.in); while(sc.hasNext()) { char[] words=sc.nextLine().toCharArray(); Map<String,Integer> map=new HashMap<>(); for(char c:words) { String temp=String.valueOf(c); if((c>='a'&&c<='z')||(c>='A'&&c<='Z')||(c>='0'&&c<='9')||(c==' ')){ if(map.keySet().contains(temp)) { map.put(temp,map.get(temp)+1); }else{ map.put(temp,1); } } } List<Map.Entry<String,Integer>> list=new ArrayList<>(map.entrySet()); Collections.sort(list, new Comparator<Map.Entry<String,Integer>>(){ @Override public int compare(Map.Entry<String,Integer> o1, Map.Entry<String,Integer> o2) { if(o1.getValue()<o2.getValue()) { return 1; }else{ if(o1.getValue()==o2.getValue()) { return o1.getKey().compareTo(o2.getKey()); } else { return -1; } } } }); for(Map.Entry<String,Integer> entry:list) { System.out.print(entry.getKey()); } System.out.println(); } } }
class Solution { public String longestPalindrome(String s) { if(s.equals("")) return ""; String res=""; String origin=s; String reverse=new StringBuilder(s).reverse().toString(); int length=s.length(); int [][] arr=new int[length][length]; int max=0,end=0; for(int i=0;i<length;i++){ for(int j=0;j<length;j++){ if(origin.charAt(i)==reverse.charAt(j)){ if(i==0 || j==0){ arr[i][j]=1; }else{ arr[i][j]= arr[i-1][j-1]+1; //动态规划寻找两个字符串的最大公共子串 } } if( arr[i][j]>max){ //当前最大子串 String str=origin.substring(i-arr[i][j]+1,i+1); //截取子串 if(isTrue(str)){ //判断是否为回文串 max=str.length(); //记录最大长度 res=str; //记录结果 } } } } return res; } public boolean isTrue(String s){ int len=s.length(); for(int i=0;i<len/2;i++){ if(s.charAt(i)!=s.charAt(len-i-1)){ return false; } } return true; } }

import java.util.*; class Solution { public int lengthOfLongestSubstring(String s) { if(s.length()==0 || s==null) return 0; HashMap<Character,Integer> map=new HashMap<>(); int max=0; int left=0; for(int i=0;i<s.length();i++){ if(map.containsKey(s.charAt(i))){ left=Math.max(left,map.get(s.charAt(i))+1);//利用map的Key的唯一性,得到无重复子串的最左端 } map.put(s.charAt(i),i); max=Math.max(max,i-left+1); } return max; } }

class Solution { List<String> list=new ArrayList<>(); String[] str=new String[]{"","","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"}; public List<String> letterCombinations(String digits) { if(digits==null || digits.length()==0) return list; String res=""; getString(res,digits,0); return list; } public void getString(String res,String digits,int i){ if(i==digits.length()){ list.add(res); return; } int num=Integer.parseInt(String.valueOf(digits.charAt(i))); for(int j=0;j<str[num].length();j++){ getString(new String(res+str[num].charAt(j)),digits,i+1); } } }

class Solution { public boolean isValid(String s) { if(s==null || s.length()==0){ return true; } if(s.length()%2==1) return false; Stack <Character> stack=new Stack<>(); for(int i=0;i<s.length();i++){ if(s.charAt(i)=='(' || s.charAt(i)=='[' ||s.charAt(i)=='{'){ if(s.charAt(i)=='(') stack.push(')'); if(s.charAt(i)=='[') stack.push(']'); if(s.charAt(i)=='{') stack.push('}'); } else{ if(stack.size()>0){ char a=stack.pop(); if(a!=s.charAt(i)) return false; } } } if(stack.size()!=0) return false; else return true; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧