首页 > 编程语言 >QuHai互联科技 算法题部分

QuHai互联科技 算法题部分

时间:2023-04-20 22:47:50浏览次数:56  
标签:互联 QuHai Console string System ListNode 算法 using public

11、实现计算第n个斐波那契数

12、给定一个字符串编码规则,如输入字符串”Y3E12S!3”,字母后面的数字表示该字符重复几次,如果字符后没有数字则表示一个字符,最终输出转码后的字符串’YYYEEEEEEEEEEEES!!!’。试写出转码的函数,编程语言不限。

13、简述你所了解的两种或以上排序算法以及其时间复杂度

14、给定一个单向链表(给出头指针),将其翻转后输出(新的头指针)

Csharp 语言

public class ListNode {
    public int val;
    public ListNode next;
    public ListNode(int x) { val = x; }
}

public ListNode ReverseList(ListNode head) {
    ListNode prev = null;
    while (head != null) {
        ListNode next = head.next; // 记录下一个节点
        head.next = prev; // 当前节点指向前一个节点
        prev = head; // 将当前节点设为下一次的前一个节点
        head = next; // 移动到下一个节点
    }
    return prev;
}



15、使用至少2种方法判断一个字符串是否是回文。写出代码实现,编程语言不限

Csharp 语言

1、双指针法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 判断是否回文
{
    class Program
    {
        public static bool IsHuiWen(string s)
        {

            for (int i = 0, j = s.Length-1; i < j; i++, j--)
            { if (s[i] != s[j])
                { return false; }
            }
            return true;
        }

        public static void Main(string[] args)
        {
            string s = Console.ReadLine();
            if (IsHuiWen(s))
            {
                Console.WriteLine(("Yes"));
            }
            else Console.WriteLine("No");

            Console.ReadKey();
        }

    }
}




2、反转函数

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 判断是否回文
{
    class Program
    {
        public static bool IsPalindrome(string s)
        {
            string reverseS = new string(s.Reverse().ToArray());
            return s == reverseS;
            //首先使用 .Reverse() 方法得到一个逆序枚举器,再使用 .ToArray() 将其转换为字符数组,
            //最后调用 string 类型的构造方法生成一个新的字符串,即为原字符串的翻转。
        }

        public   static void Main(string[] args)
        {
            string s = Console.ReadLine();
            if (IsPalindrome(s))
                Console.WriteLine("Yes");
            else Console.WriteLine("No");


            Console.ReadKey();
        }
    }
}

输入:
aannccddfddccnnaa Yes

标签:互联,QuHai,Console,string,System,ListNode,算法,using,public
From: https://www.cnblogs.com/MinervaZhang/p/17338599.html

相关文章

  • 扎实打牢数据结构算法根基,从此不怕算法面试系列之week01 02-09 测试算法时间复杂度性
    1、数组生成器测试算法性能肯定不能自己手动声明创建数组了,在现代计算机上,对于O(n)级别的算法,都需要10W级别以上的数据才能看到性能,我们肯定不能手动声明10W个元素的数组吧?所以,创建数组生成器。这里,自己创建一个数组生成器——ArrayGenerator。packagecom.mosesmin.datastruc......
  • 学习十大排序算法(1)——选择排序【实现方法c语言】
    十大排序算法第一节——选择排序复制代码直接滑到最后!!!选择排序就是找到(最大或者)最小元素,放到最开始的位置,然后就是在没有排序的序列中找到最小的排在已经排好的序列之后,直至没有排数列排完。(自己的理解)大概解释代码其中的细节:第6行中的sizeof的用法是求出括号里面......
  • 福特-富克森算法
    福特-富克森(Ford-Fulkerson)算法是一种求解最大流问题的经典算法,它的基本思想是通过不断地增广路径来找到最大流。最大流问题通常是指在网络中找到从源点到汇点的最大流量,其中网络由若干条有向边组成,每条边都有一个容量,表示该边可以通过的最大流量。最大流问题的目标是找到一个流,......
  • Dijkstra的算法
    Dijkstra算法是一种单源最短路径算法,用于在带有非负权重的图中,找到一个源节点到所有其他节点的最短路径。该算法的基本思想是通过贪心的方式逐步扩展当前已知的最短路径集合,直到找到源节点到所有其他节点的最短路径。Dijkstra算法的具体步骤如下:初始化:设置源节点到自己的距离......
  • 兔子产子问题(递归算法)
    #include<iostream>usingnamespacestd;intf(intn){ if(n==1||n==2) return1; returnf(n-1)+f(n-2);}intmain(){ inti; for(i=0;i<30;i++) { if((i+1)%5==0) cout<<endl; cout<<f(i+1); cout<<&q......
  • 《算法竞赛进阶指南》 第五章 237. 程序自动分析
    地址https://www.acwing.com/problem/content/239/在实现程序自动分析的过程中,常常需要判定一些约束条件是否能被同时满足。考虑一个约束满足问题的简化版本:假设x1,x2,x3,…代表程序中出现的变量,给定n个形如xi=xj或xi≠xj的变量相等/不等的约束条件,请判定是否可以分......
  • 互联网医院:数字化时代下的医疗服务新模式
    随着互联网和数字技术的不断发展,互联网医疗已成为现代医疗领域的新兴趋势。互联网医院是一种基于互联网技术的医疗服务模式,它将医生、患者和医疗资源有机地连接在一起,提供在线咨询、远程诊断、药品配送等医疗服务,为广大患者带来更加便捷、高效、优质的医疗服务。互联网医院系统普遍......
  • 四种语言刷算法之对链表进行插入排序
    力扣147. 对链表进行插入排序1、C/***Definitionforsingly-linkedlist.*structListNode{*intval;*structListNode*next;*};*/structListNode*insertionSortList(structListNode*head){structListNode*newHead=head;struc......
  • 十大排序算法
    一、冒泡排序publicclassBubbleSortimplementsIArraySort{@Overridepublicint[]sort(int[]sourceArray)throwsException{//对arr进行拷贝,不改变参数内容int[]arr=Arrays.copyOf(sourceArray,sourceArray.length);......
  • 5 加餐(一)| 大学毕业,我要不要留在一线城市互联网公司?
    你好,我是乔新亮。前面我们聊了许多有关职业发展的基础认知。在加餐部分,我想将这些认知串联起来,回答一些在成长中,你可能会实际遇到的问题。前段时间,我和团队内外许多年轻的同学们聊了聊,大家都在讨论“那位28岁退休的字节跳动程序员”,还引用了网络上比较火的一个词,叫做:“逃离北上广......